Відповіді:
В будь-якому випадку я би сподівався file.getParent()
(або file.getParentFile()
) дати вам те, що ви хочете.
Крім того, якщо ви хочете , щоб з'ясувати , є чи оригінал File
дійсно існує , і є каталогом, то exists()
і isDirectory()
є те , що ви після цього .
Якщо ви робите щось подібне:
File file = new File("test.txt");
String parent = file.getParent();
parent
буде недійсним.
Отже, щоб отримати каталог цього файлу, ви можете зробити наступне:
parent = file.getAbsoluteFile().getParent();
API файлу File.getParent або File.getParentFile повинен повернути вам Каталог файлів.
Ваш код повинен бути таким:
File file = new File("c:\\temp\\java\\testfile");
if(!file.exists()){
file = file.getParentFile();
}
Ви також можете перевірити, чи ваш батьківський файл - це каталог за допомогою API File.isDirectory
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
final file file = новий файл ("C: /dev/changeofseasons.mid"); System.out.println ("файл існує?" + File.exists ()); System.out.println ("каталог файлу:" + file.getAbsolutePath ()); Гаразд, вибачте за кульгаве відступ, я не думаю, що форматування коду в коментарях неможливо. І все-таки ваш код очевидно не працює.
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";
- я не думаю, що це дасть те, на що ви сподіваєтесь.