我的Android Manifest中标记了READ_EXTERNAL_STORAGE权限。我已经检查了我的Android手机(Android 7.0),该文件肯定在“/ storage / emulated / 0 / Incoming /”目录中。但是,当我尝试在Xamarin中检测到该文件时,它表示找不到它。我在尝试打开它之前没有收到任何错误。
字符串文件显示路径和文件名“/storage/emulated/0/Incoming/item_list.csv”,这与我要查找的内容一致。
我已将它安装在一个格式化的设备上,它工作正常但由于某些原因,当我想在我的手机Android设备上测试任何东西时,我得到了这个问题。
我在StackOverflow上对此进行了研究,大多数答案都指向了错误的路径。我改变了路径以包含AbsolutePath属性,但它没有用。
谢谢,
Mr.Rob
private string[] Load_Item_File()
{
string[] _result = new string[1000];
try
{
string path = Path.Combine((string)Android.OS.Environment.ExternalStorageDirectory, "Incoming");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
_result[0] = "ERROR: DIRECTORY LOCKED";
return _result;
}
string file = Path.Combine((string)path, "item_list.csv");
if (!File.Exists(file))
{
_result[0] = "ERROR: FILE NOT FOUND";
return _result;
}
_result = File.ReadAllLines(file,encoding:Encoding.ASCII);
return _result;
}
catch (Exception ex)
{
string errorMessage = ErrorLog.CreateErrorMessage(ex);
ErrorLog.LogFileWrite(errorMessage);
_result[0] = "ERROR: ISSUE WHEN READING FILE";
return _result;
}
}