Một số người ám chỉ vấn đề có khoảng trắng trong tên tệp. Tôi sẽ làm rõ.
Android dựa trên Linux và do đó sử dụng hệ thống tệp posix. Điều này có nghĩa là tên tệp có dấu cách gây ra vấn đề. Không sử dụng khoảng trắng nếu bạn đang tạo tệp hoặc thư mục; để chúng ra ngoài hoặc sử dụng .
dấu chấm ( -
), dấu gạch ngang ( ) hoặc dấu gạch dưới ( _
). Để tải một tập tin hiện có với không gian trong đó, bạn phải trích dẫn tập tin.
Sử dụng ví dụ từ câu hỏi thay thế:
content://com.android.htmlfileprovider/mnt/sdcard/Documents/To%20Read.html?text/html
Với cái này:
content://com.android.htmlfileprovider/mnt/sdcard/Documents/"To Read.html"?text/html
Nếu bạn chỉ đơn giản là mở một tập tin, bạn có thể trích dẫn toàn bộ chuỗi. Như thế này:
"/mnt/sdcard/Documents/To Read.html"
Ngoài các không gian có thể gây ra sự cố, hệ thống posix cho phép các ký tự trong tên tệp không được phép trong Windows. Để tránh sự cố khi sao chép tệp giữa các hệ thống, mặc dù một số vẫn được cho phép trên Windows, không bao gồm các ký tự sau trong tên tệp:/ \ ? * : % " < > | + # '
Để tránh các vấn đề tiếp theo, sử dụng một kiểu viết hoa nhất quán trong tên tệp. Lưu ý rằng các hệ thống posix phân biệt chữ hoa chữ thường, có nghĩa là tên tệp phân biệt chữ hoa chữ thường. Điều này có nghĩa là file.txt, FILE.TXT, file.TXT, File.txt, georgE.txt, v.v. đều là các tệp khác nhau trên một hệ thống posix, trong khi chúng được coi là cùng một tệp trên Windows.