UnauthorizedAccessException: 对路径的访问被拒绝 Ios

Kau*_*Ray 2 access-denied unity-game-engine ios vuforia

我知道这已经出现了一段时间,但我无法使用我尝试过的任何解决方案来解决错误。

我刚开始测试我的应用程序 - 将屏幕截图保存到 ios 设备代码是 -

string GetiPhoneDocumentsPath()
{
    string path = Application.dataPath.Substring(0, Application.dataPath.Length - 5);
    path = path.Substring(0, path.LastIndexOf("/"));
    return path + "/Documents/";
}

string CreateImagesDirectory(string documentsPath) {
    //System.IO.File.SetAttributes (documentsPath, FileAttributes.Normal);
    string imagePath = documentsPath +"magicimages/";
    if (Directory.Exists(imagePath)) {return imagePath;}
    DirectoryInfo t = new DirectoryInfo(documentsPath);
    //Directory.CreateDirectory(imagePath);
    t.CreateSubdirectory("magicimages");
    System.IO.File.SetAttributes (imagePath, FileAttributes.Normal);

    return imagePath;
}
Run Code Online (Sandbox Code Playgroud)

文件

    Debug.Log("Do nothing actually as we need to save to persistent data path");
        string documentsPathIphone = GetiPhoneDocumentsPath();
        Debug.Log ("document path" + documentsPathIphone);
        string imagePath = CreateImagesDirectory (documentsPathIphone);
        //Path = imagePath + fileName;
        Debug.Log ("path iphone" + Path);
        Debug.Log("Appllicarion data path -->" + Application.dataPath);
        //string savepath = Application.dataPath.Replace ("game.app/Data", "/Documents/");
        System.IO.File.WriteAllBytes (System.IO.Path.Combine(Path , fileName), screenshot);
Run Code Online (Sandbox Code Playgroud)

假设截图是字节[]

我得到了与主题一样的例外。我正在使用统一。

我得到的错误是 -

UnauthorizedAccessException:拒绝访问路径“/var/containers/Bundle/Application/9DA2D489-2037-451E-87D1-FA7354ECD0D1/Documents”。

Pro*_*mer 6

你用Application.persistentDataPath not 保存Application.dataPath。请注意,您必须创建一个文件夹并保存在该文件夹中,而不是直接保存到此路径。

所以你保存的最终路径应该是:

Application.persistentDataPath+"Yourfolder/YourFileNale.extension".

或者

Application.persistentDataPath+"Documents/YourFileNale.extension".

总是使用Path.Combine组合路径而不是"+"我上面使用的。

  • 这是我在回答中所说的。我说你应该使用 `Application.persistentDataPath` **而不是** `Application.dataPath`。我不知道从那以后你一直在用什么。 (2认同)