在Java中,如何从URI获取适当的文件夹句柄?
我注意到一个小问题。我的应用程序得到的是文件的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时
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();