File.listFiles返回NULL

4
我在我的Java应用程序中调用File.listFiles()方法,即使文件夹中有多个文件,我也得到了一个null值。如果我从调试器运行我的应用程序,一切都正常。我不确定这里发生了什么。我猜想可能是在调试器外运行我的应用程序时,我加载了与Java File冲突的JAR文件。

你知道可能出了什么问题吗? 谢谢!

以下是代码:

File searchDirectory = new File(aSearchPath);
File[] files = searchDirectory.listFiles();

这里没有什么复杂的内容。值得一提的是,当我失败时,我作为一个服务运行。


7
请展示你的代码,否则很难确定问题出在哪里。你是否使用了相对目录名,并且在运行时当前目录与调试器外运行时的不同? - Jesper
附注:考虑使用NIO.2文件API而不是传统的java.io.File类。 - Puce
1
当您不使用调试器运行时,当前目录可能与您想象的不一样。 - StephaneM
检查文件夹权限,甚至可能出现NULL的可能性。 - thar45
@Mike_G:你应该把你最后的评论发表为一个答案(是的,发表自己问题的答案是完全可以接受的)。 - Guillaume
显示剩余2条评论
1个回答

1
问题出在文件夹权限上。以服务方式运行时,我没有对该文件夹的读取权限,但是调试时却有。我在两者中使用了相同的登录凭证。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接