【发布时间】:2017-10-11 10:19:09
【问题描述】:
我正在使用 Xamarin Forms PCL 项目开发跨平台应用程序。在此我需要在 Android 的内部存储中写入一个文件,以便我可以访问它。我已授予写入外部存储权限,但是当我尝试写入文件时,它显示访问被拒绝。
这是我尝试过的:
Java.IO.File DataDirectoryPath = Android.OS.Environment.DataDirectory;
string dirPath = DataDirectoryPath.AbsolutePath + "/MyFolder";
bool exists = Directory.Exists(dirPath);
string filepath = dirPath + "/test.txt";
if (!exists)
{
Directory.CreateDirectory(dirPath);
if (!File.Exists(filepath))
{
File.Create(filepath).Dispose();
using (TextWriter tw = new StreamWriter(filepath))
{
tw.WriteLine("The very first line!");
tw.Close();
}
}
}
【问题讨论】:
-
通常建议(并且安全)使用应用程序的沙箱来存储文件。如果您将文件存储到设备存储中,而不是您的文件可以轻松修改/删除...
-
Directory.CreateDirectory(dirPath);不应该检查返回值吗?或者在尝试将文件放入其中之前检查目录是否存在? -
在特定行上显示“访问被拒绝”
-
使用内部存储根本不需要任何权限。
-
安卓版本?
标签: android file xamarin.android xamarin.forms