[英]How to get to a file by passing relative path in java?
我试图理解“如何通过传递文件或文件夹的相对路径来获取文件?” 。 这是一个例子:
码:
public class somex {
public static void main {
String fileName = System.getProperty("user.dir"); <---This gives me path for the current working directory.
File file = new File(fileName + "../../xml_tutorial/sample.xlsx" );
System.out.println(file.getCanonicalPath()); <---This gives me path for the file that is residing in folder called "xml_tutorial".
}
}
>>>>
在这里,我知道文件位置,所以我能够传递正确的相对路径。 并且,设法打印文件路径。 我删除了“sample.xlsx”并执行了上面的代码; 没有失败它给我路径名称,它与文件存在时(即删除前)相同。 怎么可能? 我在这里期待EXCEPTION。 为什么不抛异常?
二,我想使用正则表达式作为文件名,例如:“../../ xml_tutorial/samp.*”。 但是这不能完成这项工作,它给了我IOException。 为什么它无法识别文件sample.xlsx? (注意:这是文件存在的时候,一百个precent确定只有一个名为“sample.xlsx”的文件)
我删除了“sample.xlsx”并执行了上面的代码; 没有失败它给我路径名称,它与文件存在时(即删除前)相同。 怎么可能? 我在这里期待EXCEPTION。 为什么不抛异常?
File
不关心文件是否确实存在。 它只是解决了这条道路 。 为了获取路径,不需要存在该文件
/home/tjc/a/b/c/../../file.txt
...并将其转换为规范形式
/home/tjc/a/file.txt
如果要知道该路径上的文件是否确实存在,可以使用exists()
方法 。
关于你的第二个不相关的问题:
二,我想使用正则表达式作为文件名,例如:“../../ xml_tutorial/samp.*”。 但是这不能完成这项工作,它给了我IOException。 为什么它无法识别文件sample.xlsx?
File
文档中没有任何内容表明它支持通配符。 如果要进行搜索,则需要使用list(FilenameFilter)
或listFiles(FilenameFilter)
和FilenameFilter
实现,或listFiles(FileFilter)
和FileFilter
实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.