2010-11-10 18 views
1

Je construis une application Android et ai le problème suivant. Lorsque je veux ouvrir un fichier à partir de la carte SD en utilisant FileInputStream et si le nom de fichier contient un caractère vide, j'obtiens l'exception FileNotFoundException. S'il n'y a pas de caractères vides, tout fonctionne bien. Donc, si je dois ouvrir par exemple: "Mon fichier.ext" il déclenche une exception, et si le nom de fichier est "Myfile.ext" tout va bien.Android - FileNotFoundException lors de l'ouverture du fichier avec des caractères vides dans le nom

Tout indice sur la façon de résoudre ce problème sera grandement apprécié.

Cordialement

+0

Mes suggestions ont-elles permis de résoudre votre problème? Je suis curieux, parce que je faisais juste une suggestion je ne suis pas sûr à 100% que cela fonctionnerait. Je voudrais connaître le résultat, donc si je rencontre ce problème, je connaîtrai la solution. Merci, acceptez également ma solution si cela a fonctionné! =)))) – prolink007

+1

Les espaces ne sont pas des "caractères vides" – Falmarri

+0

Yeh, utilisé le mauvais mot. La chose est, quand je regarde la carte SD, je vois un fichier "Track 3". Ensuite, lorsque j'imprime le chemin du fichier, je l'obtiens imprimé comme "Track% 203" pour une raison quelconque. Et puis évidemment, le InputStream ne le reconnaît pas comme le même. Comme je l'ai dit, si je nomme le fichier "Track3", le problème est parti. – Petar

Répondre

3

Vous aurez besoin d'utiliser un caractère d'échappement spécifique pour qu'il y ait un vide dans le nom du fichier. Je crois qu'il est un « \ » ...

Il serait comme ça « mon \ textfile.txt »

0

Vous pouvez essayer de laisser android analyser un certain fichier et l'ouvrir

File file = new File(Uri.parse(path+"file name.txt")); 
FileInputStream inputStream = new FileInputStream(file); 

Uri devrait analyser vos noms de fichiers correctement.