在MAC上创建一个文件夹

时间:2018-08-19 22:15:36

标签: c# unity3d mono

我正在尝试在我的游戏中的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);

但这不起作用。

为完整起见,由于某些原因,所有文件夹都没有相同的权限。

0 个答案:

没有答案