如何從ACTION_OPEN_DOCUMENT_TREE Intent所選文件夾中的zipfile中讀取數據?如何從ACTION_OPEN_DOCUMENT_TREE Intent所選文件夾中的zip文件中讀取數據?
我的應用程序讓用戶通過ACTION_OPEN_DOCUMENT_TREE Intent選擇一個文件夾。 在該文件夾中,我將使用具有特定名稱的Zipfile。 目標是使用java.util.zip.ZipFile讀取Zipfile。
如何從onActivityResult中提供的URI(Folderinfo)實例化ZipFile與此特定的Zipfilename?
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Uri treeUri = data.getData();
String sPath=treeUri.getPath();
java.util.zip.ZipFile myzip=new java.util.zip.ZipFile("mypath"); <-- Constructor expects File or Path as String. Howto handle this with the Uri ?
正如我寫的。我將在該文件夾中有一個用戶選擇的zip文件。那麼是否真的沒有機會基於Folder-URI在此已存在的文件上實例化ZipFile? –
@ user1344545:As * I *寫道,**沒有文件**。 ACTION_OPEN_DOCUMENT_TREE不返回「文件夾URI」。它返回一個'Uri'給'DocumentProvider'想要的任何東西。沒有要求它映射到設備本身的某個目錄。 'DocumentProvider'爲特定文檔返回的'Uri'不必映射到設備本身的某個文件。例如,「DocumentProvider」可以由「雲」支持而不是由本地文件支持,或者這些文件可以位於提供者可以訪問但不可用的可移動媒體上。 – CommonsWare
如果我用fileexplorer手動將一個zip文件「myzip.zip」移動到一個文件夾/ sdcard/myfolder /(這就是我的意思是已經有一個文件)。然後,我啓動應用程序並選擇文件夾/ sdcard/myfolder與ACTION_OPEN_DOCUMENT_TREE意圖,我看到文件「myzip.zip」。然後我期望該文件在那裏,我希望可以用API列出它。所以我也希望閱讀這個文件。但是,謝謝我將使用ZipInputStream –