考慮代碼:如何使用File對象獲取文件的目錄?
File file = new File("c:\\temp\\java\\testfile");
testfile
是一個文件,它可能會或可能不存在。 我想使用File
對象獲取目錄c:\\temp\\java\\
。我如何去做這件事?
考慮代碼:如何使用File對象獲取文件的目錄?
File file = new File("c:\\temp\\java\\testfile");
testfile
是一個文件,它可能會或可能不存在。 我想使用File
對象獲取目錄c:\\temp\\java\\
。我如何去做這件事?
無論哪種情況,我都希望file.getParent()
(或file.getParentFile()
)能夠給你想要的東西。
此外,如果你想找出原File
是否確實存在和是一個目錄,然後exists()
和isDirectory()
是你追求的。
File.getParent()從Java文檔
It 404s *填充文本* – Caelum 2015-08-15 20:17:23
https://docs.oracle.com/javase/8/docs/api/java/io/File.html#getParent-- – 2016-03-02 11:14:32
文件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 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()); }
您不回答這個問題,這對文件不起作用。 – toni07 2015-04-06 21:17:29
讓我看看可重複的例子@toni – 2015-04-06 21:30:41
'code' final File file = new File(「C:/dev/changeofseasons.mid」); System.out.println(「file exists?」+ file.exists()); System.out.println(「file of directory:」+ file.getAbsolutePath()); 好吧,對不起,縮進縮進,我不認爲有可能在評論中格式化代碼。不過,你的代碼顯然不起作用。 – toni07 2015-04-06 21:41:22
File filePath=new File("your_file_path");
String dir="";
if (filePath.isDirectory())
{
dir=filePath.getAbsolutePath();
}
else
{
dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), "");
}
描述是必要的。 – 2015-03-03 11:08:01
歡迎來到Stack Overflow!一般來說,代碼的答案需要一點解釋 - 看到這個元[Stackoverflow post](http://meta.stackoverflow.com/a/260413/838992)。有了你發佈的答案,你可能需要解釋你正在試圖給出一個一般情況,以及它如何與OP的實際職位相關聯。更嚴重的是,你可能想考慮它對'your_file_path =「C:\\ testfiles \\ temp \\ testfile」是如何工作的;' - 我不認爲它會給你所希望的。 – 2015-03-03 12:54:18
應該是正確答案。這將顯示文件的完整路徑。 – 2015-07-06 14:11:20
您可以使用此目錄
File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath());
我發現這對獲取絕對文件位置更有用。
File file = new File("\\TestHello\\test.txt");
System.out.println(file.getAbsoluteFile());
如果你做這樣的事情:
File file = new File("test.txt");
String parent = file.getParent();
parent
將是無效的。
因此,要獲得該文件的目錄,你接下來可以做的:
parent = file.getAbsoluteFile().getParent();
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length());
這將是我的解決方案
使用file.getParent()小心,因爲它可能會返回在某些情況下空。 – geschema 2014-07-22 09:02:44
@geschema Ponaguynik的回答如下: – 4myle 2017-06-13 19:27:05