代码之家  ›  专栏  ›  技术社区  ›  Christian

哪个Environment.SpecialFolder.XXX将为我提供Context.getFilesDir()?

  •  1
  • Christian  · 技术社区  · 6 年前

    我想访问一个文件夹,在其中我可以保存临时文件,并在那里写一个文件,我不需要权限写入该文件夹。

    我目前使用:

    string targetBaseDir = Environment.GetFolderPath(
        Environment.SpecialFolder.Personal,
        Environment.SpecialFolderOption.Create
        );
    

    这给了我一个私人目录,我不需要权限,这是对应的目录 Context.getFilesDir() 但是,由于我不需要该文件永久存在,如果我能将它们保存在 Context.getFilesDir() . 我要写什么来代替 .Personal 去拿目录?

    2 回复  |  直到 6 年前
        1
  •  1
  •   SushiHangover    6 年前

    你可以用 FileSystem.AppDataDirectory 通过 Xamarin.Essentials

    例子:

    var appData = Xamarin.Essentials.FileSystem.AppDataDirectory;
    

    appData 等于 /data/user/0/com.sushihangover.FormsTestSuite/files

    FilesDir :

    Log.Debug("SO", FilesDir.ToString() );
    

    等于 /data/user/0/com.sushihangover.FormsTestSuite/files

    在这种情况下,请使用缓存目录:

    var cacheDir = Xamarin.Essentials.FileSystem.CacheDirectory;
    

    cacheDir 等于:`/data/user/0/com.sushihangover.FormsTestSuite/cache

    重新: https://docs.microsoft.com/en-us/xamarin/essentials/

        2
  •  0
  •   Elvison    6 年前

    两者 Environment.SpecialFolder.Personal Environment.SpecialFolder.MyDocuments Context.getFilesDir() .

    但是,如果你想保存 小的 Context.getCacheDir() .

    但是缓存目录没有特殊的文件夹枚举。您必须从当前上下文中获取路径 Context.CacheDir.Path Xamarin.Essentials.FileSystem.CacheDirectory 如果你使用 Xamarin.Essentials 应用程序编程接口。

    阅读更多:
    File access with Xamarin.Android with SpecialFolder
    Writing cache file in internal storage
    File system helpers in Xamarin.Essentials

    推荐文章