Antworten:
In jedem Fall würde ich erwarten file.getParent()
(oder file.getParentFile()
), Ihnen zu geben, was Sie wollen.
Außerdem, wenn Sie herausfinden möchten , ob das Original File
tut exist und ist ein Verzeichnis, dann exists()
und isDirectory()
sind das, was du bist nach.
Wenn Sie so etwas tun:
File file = new File("test.txt");
String parent = file.getParent();
parent
wird null sein.
Um das Verzeichnis dieser Datei zu erhalten, gehen Sie wie folgt vor:
parent = file.getAbsoluteFile().getParent();
Datei-API File.getParent oder File.getParentFile sollten das Verzeichnis der Datei zurückgeben.
Ihr Code sollte wie folgt aussehen:
File file = new File("c:\\temp\\java\\testfile");
if(!file.exists()){
file = file.getParentFile();
}
Sie können außerdem mithilfe der File.isDirectory- API überprüfen, ob Ihre übergeordnete Datei ein Verzeichnis ist
if(file.isDirectory()){
System.out.println("file is directory ");
}
File directory = new File("Enter any directory name or file name"); boolean isDirectory = directory.isDirectory(); if (isDirectory) { // It returns true if directory is a directory. System.out.println("the name you have entered is a directory : " + directory); //It returns the absolutepath of a directory. System.out.println("the path is " + directory.getAbsolutePath()); } else { // It returns false if directory is a file. System.out.println("the name you have entered is a file : " + directory); //It returns the absolute path of a file. System.out.println("the path is " + file.getParent()); }
code
endgültige Datei file = neue Datei ("C: /dev/changeofseasons.mid"); System.out.println ("Datei existiert?" + File.exists ()); System.out.println ("Verzeichnis der Datei:" + file.getAbsolutePath ()); Ok, sorry für lahmes Einrücken, ich glaube nicht, dass es möglich ist, Code in Kommentaren zu formatieren. Trotzdem funktioniert Ihr Code offensichtlich nicht.
File filePath=new File("your_file_path");
String dir="";
if (filePath.isDirectory())
{
dir=filePath.getAbsolutePath();
}
else
{
dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), "");
}
your_file_path = "C:\\testfiles\\temp\\testfile";
- ich glaube nicht, dass es das geben würde, was Sie hoffen.