如何从 Java 中的 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()
句柄也是如此。
有什么想法可以解决这个问题吗?
PS:File
或 java.net.URI
的方法都不会返回不是 URI 的绝对路径;)
I noticed a little issue. What my application gets is a URI of a file e.g. file:///C:/temp/somefolder/somedocument.txt
as a String.
What my application has to do is check the folder for more files and process them. To do that, I'd normally do something like
File file = new File(myURI);
File folder = file.getParentFile();
File[] peers = folder.getParentFile().listFiles();
Unfotunately, this doesn't seem to work at all when you use URI's. .listFiles
always returns null, even if I open a File()
handle to the URI of the folder.
Any ideas how to get around this problem?
P.S.: none of the methods of File
or java.net.URI
will return an absolute path which is not a URI ;)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的
myURI
实际上是URI
的String
表示形式。您调用的File
的构造函数请注意
pathname
位,它不是 URI-ish 值。尝试
Your
myURI
is actually aString
representation of aURI
. The constructor ofFile
that you're calling isNote the
pathname
bit, it's not a URI-ish value.Try
尝试:
这对我有用。但是,如果我使用你的代码,当我调用 getParentFile() 时,我会得到一个 NPE
Try:
This worked for me. However if I use your code I get a NPE when I call getParentFile()