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