0
我正在开发一个应用程序,使用户可以选择一个文件并在获取路径后对其进行处理,我已经编写了一个代码,让我得到这样的路径Android - 选择文件并获取绝对路径
private void OpenFile()
{
Intent i = new Intent(Intent.ActionGetContent);
i.SetType("application/zip");
StartActivityForResult(i,0);
}
在对结果的活动,我解压路径如下:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (requestCode == 0)
{
if (resultCode == Result.Ok)
{
string uri = data.DataString;
System.Uri myUri = new System.Uri(uri, System.UriKind.Absolute);
Android.Net.Uri uris = Android.Net.Uri.FromParts(data.Scheme, myUri.LocalPath, myUri.Fragment);
// string a= myUri.LocalPath;
System.IO.Stream input= ContentResolver.OpenInputStream(uris);
string uri = data.DataString;
ZipLogic.Unzip(uri);
}
}
}
而结果是这样的模式:
content://com.android.externalstorage.documents/document/xxxx-83BB%3xxx%2Fxxx.zip
但当我尝试从收益DirectoryNotFound异常 我不能解决如何打开这个路径作为流访问此路径。
所以说,文件目录未找到。因此,在阅读之前检查该目录是否存在。 – RameshJaga
是的,它存在!问题是一些涉及到开放的,因为我们只有当我们选择文件接收路径。 – Technacron
检查此https://stackoverflow.com/a/20559175/2556660 – RameshJaga