Jawaban:
Dalam kedua kasus tersebut, saya berharap file.getParent()
(atau file.getParentFile()
) memberikan apa yang Anda inginkan.
Selain itu, jika Anda ingin mengetahui apakah aslinya File
memang ada dan merupakan direktori, maka exists()
dan isDirectory()
apa yang Anda cari.
Jika Anda melakukan sesuatu seperti ini:
File file = new File("test.txt");
String parent = file.getParent();
parent
akan menjadi nol.
Jadi untuk mendapatkan direktori file ini, Anda dapat melakukan selanjutnya:
parent = file.getAbsoluteFile().getParent();
File API File.getParent atau File.getParentFile harus mengembalikan Anda Direktori file.
Kode Anda harus seperti:
File file = new File("c:\\temp\\java\\testfile");
if(!file.exists()){
file = file.getParentFile();
}
Anda juga dapat memeriksa file induk Anda adalah direktori menggunakan 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
File akhir file = File baru ("C: /dev/changeofseasons.mid"); System.out.println ("file ada?" + File.exists ()); System.out.println ("direktori file:" + file.getAbsolutePath ()); Ok, maaf untuk indentasi yang timpang, saya rasa tidak mungkin untuk memformat kode dalam komentar. Namun, kode Anda jelas tidak berfungsi.
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";
- saya tidak berpikir itu akan memberikan apa yang Anda harapkan.