繁体   English   中英

如何通过在java中传递相对路径来获取文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM