我將序列化/反序列化文件放到從Application.persistentDataPath返回的路徑中,以保存/加載由播放器創建的級別,並且其工作完美無瑕。然而,當我嘗試訪問通過Directory.GetFiles()相同的路徑我得到返回的0通過代碼訪問Android設備上的特定位置
這裏的值是怎麼了節能:
using (Stream stream = new FileStream(Application.persistentDataPath + @"\" + name + ".LevelData", FileMode.Create, FileAccess.Write, FileShare.None))
{
formatter.Serialize(stream, level);
}
的原因,我想訪問此位置是爲了讓我可以彈出一個菜單,詢問玩家想要加載的級別,然後顯示他們創建的每個級別,以便他們選擇並編輯它。
這將返回大小爲0的字符串數組:
Directory.GetFiles(Application.persistentDataPath, "*LevelData", SearchOption.TopDirectoryOnly);
此外,調試從Application.persistentDataPath返回的路徑後,我發現它返回的路徑實際上不存在我的移動設備上。但它有一些奇怪的行爲,就好像我嘗試創建可以完成該路徑的文件夾一樣,我的設備根本不會讓我,但如果我嘗試命名該文件夾的其他任何內容,它都可以正常工作。
爲了從Unity中訪問Android設備上的文件,我需要一個不同的庫嗎?在Windows上工作時,Directory.GetFiles()可以正常工作。
您是否在Android清單中包含了寫入權限? – Bijan
我沒有,但我是在假設,因爲序列化/加載工作(即使關閉/重新打開應用程序後),成功創建文件。你認爲我需要Directory.GetFiles的寫入權限嗎? –
看到這篇文章:http://stackoverflow.com/a/41857019/366064是的,你需要權限 – Bijan