Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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中,如何从URI获取适当的文件夹句柄?_Java_File_Uri - Fatal编程技术网

在Java中,如何从URI获取适当的文件夹句柄?

在Java中,如何从URI获取适当的文件夹句柄?,java,file,uri,Java,File,Uri,我注意到一个小问题。我的应用程序得到的是文件的URI,例如file:///C:/temp/somefolder/somedocument.txt作为字符串 我的应用程序要做的是检查文件夹中的更多文件并处理它们。要做到这一点,我通常会这样做 File file = new File(myURI); File folder = file.getParentFile(); File[] peers = folder.getParentFile().listFiles(); 不幸的是,当您使用URI时

我注意到一个小问题。我的应用程序得到的是文件的URI,例如
file:///C:/temp/somefolder/somedocument.txt
作为字符串

我的应用程序要做的是检查文件夹中的更多文件并处理它们。要做到这一点,我通常会这样做

File file = new File(myURI);
File folder = file.getParentFile();
File[] peers = folder.getParentFile().listFiles();
不幸的是,当您使用URI时,这似乎根本不起作用
.listFiles
始终返回null,即使我打开文件夹URI的
文件()
句柄

有没有办法解决这个问题


注意:
File
java.net.URI
的任何方法都不会返回非URI的绝对路径;)

您的
myURI
实际上是
字符串
表示
URI
。您正在调用的
文件的构造函数是

public File(String pathname)
注意
路径名
位,它不是URI值

试一试

尝试:


这对我有用。但是,如果我使用您的代码,当我调用getParentFile()时,我会得到一个NPE。

代码很好,工作正常。如果抛出任何异常,请发布stacktrace。myURI是URI类型的对象还是字符串?一定是前者,我有一根绳子。也没有例外。listFiles仅为null;)非常感谢你。这确实奏效了。奇怪的是,打开文件句柄并使用它可以很好地使用URI字符串作为参数。只有在尝试目录操作时,它的行为才会变得奇怪。。。
File file = new File(new URI(myURI));
File file = new File(myURI);
File[] peers = new File(file.getParent()).listFiles();