Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,如何通过传递相对路径来访问文件?_Java_Regex_File_Relative Path - Fatal编程技术网

在java中,如何通过传递相对路径来访问文件?

在java中,如何通过传递相对路径来访问文件?,java,regex,file,relative-path,Java,Regex,File,Relative Path,我试图理解“如何通过传递文件或文件夹的相对路径来访问文件?”。以下是一个例子: 代码: 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(fileN

我试图理解“如何通过传递文件或文件夹的相对路径来访问文件?”。以下是一个例子:

代码:

  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".
     }
  }

    >>>> 
公共类somex{
公共静态真空总管{
字符串文件名=System.getProperty(“user.dir”);>>
在这里,我知道文件位置,因此我能够通过正确的相对路径。并且,我成功地打印了文件路径。我删除了“sample.xlsx”并执行了上述代码;毫无疑问,它给出了路径名,路径与文件存在时(即删除前)的路径相同.怎么可能?我在这里期待异常。为什么它不抛出异常

第二,我想对文件名使用正则表达式,例如:“../../xml\u tutorial/samp.*”。但这不起作用,它给了我IOException。为什么它不能识别文件sample.xlsx?(注意:这是当文件存在时,并且百分百确定只有一个文件名为“sample.xlsx”)

我已经删除了“sample.xlsx”并执行了上述代码;毫无疑问,它给了我路径名,并且路径与文件存在时(即删除之前)的路径相同。这怎么可能?我在这里期待异常。为什么它不引发异常

文件
不关心文件是否实际存在。它只解析路径。不需要为了获取路径而存在文件

/home/tjc/a/b/c/../../file.txt /home/tjc/a/b/c/./../file.txt …并将其转化为标准形式

/home/tjc/a/file.txt /home/tjc/a/file.txt 如果您想知道该路径上的文件是否实际存在,可以使用


关于第二个无关的问题:

第二,我想对文件名使用正则表达式,例如:“../../xml\u tutorial/samp.*”。但这不起作用,它给了我IOException。为什么它无法识别文件sample.xlsx


没有人说它支持通配符。如果你想进行搜索,你需要使用or和一个实现,或者和一个实现。

1.你可以用file.exists()方法检查文件。2.java不支持通配符,你可以在这里找到答案。请每个问题问一个问题。