it-swarm.com.de

Abrufen des Verzeichnisses aus einem Dateipfad in Java (Android)

Gibt es eine Funktion, um das Verzeichnis in einen Dateipfad zu bekommen?  

so von 

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

du kriegst 

"/root/sdcard/Pictures"
19
tru7

Ja. Konstruieren Sie zunächst eine File , die den Bildpfad darstellt:

File file = new File(a);

Wenn Sie von einem relativen Pfad ausgehen:

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

Dann das Elternteil erhalten :

String dir = file.getParent();

Oder wenn Sie das Verzeichnis als File-Objekt haben möchten,

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

Verwenden Sie getParent() aus 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

Sie können auch FilenameUtils von Apache verwenden. Es bietet mindestens die folgenden Funktionen für das Beispiel C:\dev\project\file.txt:

  • das Präfix - C: \
  • der Pfad - dev\project \
  • der vollständige Pfad - C:\dev\project \
  • der Name - Datei.txt
  • die Basisnamensdatei
  • die Erweiterung - TXT
3
winterDroid

Ich habe nach 4 Tagen eine Lösung gefunden. Bitte beachten Sie die folgenden Punkte, während Sie den Pfad zur Dateiklasse in Android (Java) angeben:

  1. Pfad für internen Speicher verwenden String path = "/ storage/sdcard0/myfile.txt";
  2. path = "/ storage/sdcard1/myfile.txt";
  3. erwähnen Sie Berechtigungen in der Manifest-Datei.

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

  4. Überprüfen Sie zunächst die Dateilänge zur Bestätigung.
  5. Überprüfen Sie die Pfade im ES File Explorer bezüglich sdcard0 und sdcard1, oder ......

z.B.

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