如何使用File对象获取文件的目录?
考虑下面的代码:
File file = new File("c:\\temp\\java\\testfile");
testfile
是一个文件,它可能存在也可能不存在。 我想使用File
对象获取目录c:\\temp\\java\\
。 我怎么去做这个?
在任何情况下,我希望file.getParent()
(或file.getParentFile()
)给你你想要的。
另外,如果你想知道原始File
是否存在并且是一个目录,那么exists()
和isDirectory()
就是你所要做的。
Java文档中的File.getParent()
File 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()); }
File filePath=new File("your_file_path"); String dir=""; if (filePath.isDirectory()) { dir=filePath.getAbsolutePath(); } else { dir=filePath.getAbsolutePath().replaceAll(filePath.getName(), ""); }
如果你做这样的事情:
File file = new File("test.txt"); String parent = file.getParent();
parent
将为空。
所以要得到这个文件的目录,你可以做下一步:
parent = file.getAbsoluteFile().getParent();
你可以使用这个
File dir=new File(TestMain.class.getClassLoader().getResource("filename").getPath());
String parentPath = f.getPath().substring(0, f.getPath().length() - f.getName().length());
这将是我的解决scheme
我发现这对获取绝对文件位置更有用。
File file = new File("\\TestHello\\test.txt"); System.out.println(file.getAbsoluteFile());