Quelques personnes font allusion à la question d'avoir des espaces dans le nom du fichier. Je vais clarifier.
Android est basé sur Linux et utilise donc un système de fichiers posix. Cela signifie que les noms de fichiers avec des espaces posent des problèmes. N'utilisez pas d'espaces si vous créez un fichier ou un répertoire. laissez-les de côté ou utilisez des points ( .
), des tirets ( -
) ou des traits de soulignement ( _
). Pour charger un fichier existant contenant de l'espace, vous devez le citer.
En utilisant l'exemple de la question, remplacez:
content://com.android.htmlfileprovider/mnt/sdcard/Documents/To%20Read.html?text/html
avec ça:
content://com.android.htmlfileprovider/mnt/sdcard/Documents/"To Read.html"?text/html
Si vous ouvrez simplement un fichier autrement, vous pouvez citer la chaîne entière. Comme ça:
"/mnt/sdcard/Documents/To Read.html"
En plus des espaces pouvant causer des problèmes, les systèmes posix permettent les caractères non autorisés dans Windows dans les noms de fichiers. Pour éviter les problèmes lors de la copie de fichiers entre systèmes, même si certains sont toujours autorisés sous Windows, n'incluez pas les caractères suivants dans les noms de fichier:/ \ ? * : % " < > | + # '
Pour éviter d'autres problèmes, utilisez un style de capitalisation cohérent dans les noms de fichiers. Notez que les systèmes posix sont sensibles à la casse, ce qui signifie que les noms de fichiers sont sensibles à la casse. Cela signifie que file.txt, FILE.TXT, file.TXT, File.txt, georgE.txt, etc. sont tous des fichiers différents sur un système posix, alors qu'ils sont considérés comme le même fichier sous Windows.