2012-05-30 19 views
0

我有一個基本的文件瀏覽器,它允許您點擊並打開各種文件,但我發現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可能會暫時關閉,或者它可能已永久移動到新的網址。「

在此先感謝!

+0

你需要提到的mnt/sdcard/elocker/ASubFolder/Text \ Document.txt –

+0

我想我可以這樣做,如果我自己構建路徑,但它是在代碼中完成的?有沒有辦法解析/ unescape這個正確? – WallyHale

+0

進一步解釋,有一個列表視圖顯示給定的目錄/子目錄中的文件..這些被拉入字符串中 - 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

回答

1

這似乎只發生在某些Android虛擬設備上,在真實設備(尚未)上測試時沒有此類問題,文件全部按預期打開。

相關問題