web-dev-qa-db-fra.com

Obtenir le répertoire à partir d'un chemin de fichier en Java (Android)

Y at-il une fonction pour obtenir la partie de répertoire d'un chemin de fichier?  

donc de 

String a="/root/sdcard/Pictures/img0001.jpg";

vous recevez 

"/root/sdcard/Pictures"
19
tru7

Oui. Commencez par construire une File représentant le chemin de l’image:

File file = new File(a);

Si vous partez d'un chemin relatif:

file = new File(file.getAbsolutePath());

Ensuite, récupère le parent :

String dir = file.getParent();

Ou, si vous voulez que le répertoire soit un objet File,

File dirAsFile = file.getParentFile();
42
Andrey Akhmetov

Une meilleure façon, utilisez getParent() de File Class ..

String a="/root/sdcard/Pictures/img0001.jpg"; // A valid file path 
File file = new File(a); 
String getDirectoryPath = file.getParent(); // Only return path if physical file exist else return null

http://developer.Android.com/reference/Java/io/File.html#getParent%28%29

10
user370305

Vous pouvez également utiliser FilenameUtils from Apache . Il vous fournit au moins les fonctionnalités suivantes pour l'exemple C:\dev\project\file.txt:

  • le préfixe - C: \
  • le chemin - dev\project \
  • le chemin complet - C:\dev\project \
  • le nom - fichier.txt
  • le nom de base - fichier
  • l'extension - txt
3
winterDroid

J'ai la solution à ce sujet après 4 jours. Veuillez noter les points suivants tout en donnant le chemin d'accès à la classe File dans Android (Java):

  1. Utiliser le chemin pour le stockage interne String path = "/ storage/sdcard0/myfile.txt";
  2. path = "/ storage/sdcard1/myfile.txt";
  3. mentionnez les autorisations dans le fichier manifeste.

    <uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE" />

  4. Vérifiez d'abord la longueur du fichier pour confirmation.
  5. Vérifier les chemins dans ES File Explorer concernant sdcard0 & sdcard1 est le même sinon ......

par exemple.

File file=new File(path);
long=file.length();//in Bytes
0
Mahadev Mane