Рассмотрим код:
File file = new File("c:\\temp\\java\\testfile");
testfile - это файл, который может существовать или не существовать.Я хочу получить каталог c:\\temp\\java\\, используя объект File.Как мне это сделать?
testfile
c:\\temp\\java\\
File
В любом случае я бы ожидал, что file.getParent() (или file.getParentFile()) даст вам то, что вы хотите.
file.getParent()
file.getParentFile()
Дополнительно, если вы хотитечтобы узнать, существует ли оригинал File и является каталогом, тогда exists() и isDirectory() - это то, что вам нужно.
exists()
isDirectory()
File.getParent () из документации Java
Файловый API File.getParent или File.getParentFile должен вернуть вам каталог файла.
Ваш код должен быть таким:
File file = new File("c:\\temp\\java\\testfile"); if(!file.exists()){ file = file.getParentFile(); }
Вы можете дополнительно проверить, что ваш родительский файл является каталогом, используя File.isDirectory API
if(file.isDirectory()){ System.out.println("file is directory "); }
Если вы делаете что-то вроде этого:
File file = new File("test.txt"); String parent = file.getParent();
parent будет нулевым.
parent
Итак, чтобы получить каталог этого файла, вы можете сделать следующее:
parent = file.getAbsoluteFile().getParent();
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()); }
File filePath=new File("your_file_path"); String dir=""; if (filePath.isDirectory()) { dir=filePath.getAbsolutePath(); } else { dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), ""); }
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length());
Это было бы моим решением
Я нашел это более полезным для получения абсолютного расположения файла.
File file = new File("\\TestHello\\test.txt"); System.out.println(file.getAbsoluteFile());
Вы можете использовать это
File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath());