我想访问一个文件夹,我可以在其中保存临时文件并在其中写入文件,并且我不需要权限即可写入该文件夹。
我目前正在使用:
string targetBaseDir = Environment.GetFolderPath(
Environment.SpecialFolder.Personal,
Environment.SpecialFolderOption.Create
);
这为我提供了一个私有目录,该目录不需要权限,该目录是与Context.getFilesDir()
对应的目录,但是由于我不需要文件永久存在,因此如果可以将它们保存在其中,它将更加干净。与Context.getFilesDir()
对应的目录。要获取目录,我需要写些什么而不是.Personal
?
答案 0 :(得分:0)
您可以通过.NetStd库中的FileSystem.AppDataDirectory
使用Xamarin.Essentials
来获取Android上的“ getFilesDir()”位置。
var appData = Xamarin.Essentials.FileSystem.AppDataDirectory;
appData
等于/data/user/0/com.sushihangover.FormsTestSuite/files
还有Android 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
答案 1 :(得分:0)
Environment.SpecialFolder.Personal
和Environment.SpecialFolder.MyDocuments
都将为您提供Context.getFilesDir()
的路径。
但是,如果要保存小的临时文件,则可以使用缓存目录Context.getCacheDir()
。
不过,缓存目录没有特殊的文件夹枚举。您必须从当前上下文Context.CacheDir.Path
或从Xamarin.Essentials.FileSystem.CacheDirectory
获取路径,如果您使用Xamarin.Essentials
API。
了解更多:
File access with Xamarin.Android with SpecialFolder
Writing cache file in internal storage
File system helpers in Xamarin.Essentials