我正在尝试在我的游戏中的Mac上的Unity(Application.dataPath)提供的文件夹中创建文件夹(和文件),该文件夹会导致用户/库/应用程序支持/应用名称
我可以使用以下简单的方法创建文件夹:
if (!System.IO.Directory.Exists(pathMods))
{
System.IO.Directory.CreateDirectory(pathMods);
}
该文件夹已创建,但我无法在其中写任何内容。如果我尝试使用Finder手动找到该文件夹,则表明我无权访问该文件夹。
我还没有在Google上找到任何解决方案,但这似乎是一个非常简单的问题。
我也尝试过用777调用此函数,但是它不起作用:
private static bool GrantAccess(string fullPath)
{
try
{
#if UNITY_STANDALONE_OSX
sys_chmod(fullPath, 777);
#else
DirectoryInfo dInfo = new DirectoryInfo(fullPath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
#endif
}
catch (PlatformNotSupportedException e)
{
try
{
sys_chmod(fullPath, 777);
}
catch (Exception e2)
{
LibTRANSVERSE.Helper.Monitoring.Exception(e2, LibTRANSVERSE.Helper.MethodInfoHelper.GetCurrentMethod());
return false;
}
}
catch (Exception e)
{
LibTRANSVERSE.Helper.Monitoring.Exception(e, LibTRANSVERSE.Helper.MethodInfoHelper.GetCurrentMethod());
return false;
}
return true;
}
[DllImport("libc", EntryPoint = "chmod", SetLastError = true)]
private static extern int sys_chmod(string path, uint mode);
但这不起作用。
为完整起见,由于某些原因,所有文件夹都没有相同的权限。