如何从Java中的URI获取正确的文件夹句柄?

时间:2011-12-07 14:36:52

标签: 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时,这似乎根本不起作用。 .listFiles始终返回null,即使我打开文件夹URI的File()句柄。

如何解决这个问题?

P.S。:Filejava.net.URI的所有方法都不会返回绝对路径,而不是URI;)

2 个答案:

答案 0 :(得分:1)

您的myURI实际上是String的{​​{1}}代表。您正在调用的URI的构造函数是

File

注意public File(String pathname) 位,它不是URI-ish值。

尝试

pathname

答案 1 :(得分:0)

尝试:

File file = new File(myURI);
File[] peers = new File(file.getParent()).listFiles();

这对我有用。但是,如果我使用你的代码,当我调用getParentFile()

时,我会得到一个NPE