我有一個基本的文件瀏覽器,它允許您點擊並打開各種文件,但我發現Android - 如果路徑包含空格,無法在Web視圖中從SD卡打開文本文件?
a)如果目錄中包含空格,但文件名不在web視圖應用程序中找不到文件 例如。/mnt/sdcard/elocker /子文件夾/ TextDocument.txt
b)如果沒有空格,一切正常,Web視圖打開並顯示.txt文件的內容:) 例如。 /mnt/sdcard/elocker/ASubFolder/TextDocument.txt
要獲得MIME類型,並開始爲給定的文件擴展名的目的,我使用了下列 -
Uri myFileUri = Uri.fromFile(aFile);
try
{
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(myFileUri.toString().toLowerCase());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
myIntent.setDataAndType(myFileUri,mimetype);
startActivityForResult(myIntent, 0);
}
我相信人有遇到這個之前,它可能只是一個基本問題,因爲空間不能使用(在網絡視圖中),但這似乎有點古老,我希望Android更多,所以我猜這是我正在做的事情錯誤;)
=====
編輯
Web視圖顯示以下錯誤,正如您所見,系統添加了%20's - 「位於content://com.android.htmlfileprovider/sdcard/elocker/A%20Sub%20Folder的網頁/TextDocument.txt?text/plain可能會暫時關閉,或者它可能已永久移動到新的網址。「
在此先感謝!
你需要提到的mnt/sdcard/elocker/ASubFolder/Text \ Document.txt –
我想我可以這樣做,如果我自己構建路徑,但它是在代碼中完成的?有沒有辦法解析/ unescape這個正確? – WallyHale
進一步解釋,有一個列表視圖顯示給定的目錄/子目錄中的文件..這些被拉入字符串中 - String fileName = currentFile.getName()。toLowerCase(); 當點擊一個文件,該文件的路徑/位置作爲所述被創建 - clickedFile =新的文件(this.currentDirectory \t \t \t \t \t \t .getAbsolutePath() \t \t \t \t \t \t +此。 directoryEntries.get(position) \t \t \t \t \t \t .getText()); – WallyHale