gpt4 book ai didi

java - 尝试在 java 中使用 list() 或 listFiles() 从目录中获取文件

转载 作者:行者123 更新时间:2023-11-30 09:56:30 28 4
gpt4 key购买 nike

我正在开发一个小型的基本 GUI 程序,它从我的资源中获取文件并获取文件的名称并将它们放在组合框中。例如,我只是在同一个包中有一个名为 images 的文件,并试图获取文件名。我获取文件的方式是像这样使用 getResoure()

java.net.URL url = FileDemo.class.getResource("images");

但是当我尝试获取目录中的文件时

  File urlfile = new File(url.toString());

String[] files = urlfile.list();

第一行会将 url 转换为字符串并创建一个文件对象,但是当我尝试获取目录中的文件列表时,它会向字符串数组返回 null。

我分解代码并使用 netbeans 中的调试器发现,当它进行 SecurityManager 检查时它不会通过。

我的问题是项目中的文件是否受到保护,或者无法使用 list() 和 listFiles() 访问它们,或者我做错了什么?我也在我学校的计算机上运行了相同的脚本,他们有 windows 7,上面的代码有效。但是当我在我的 mac 甚至 2 台 win xp 机器上运行它时,它就是不起作用?这是为什么?

我希望这是有道理的,我只是被困在这里,仍然是 java 的新手

提前致谢。

最佳答案

getResource(String) 的类返回图像的 URL,但不能保证这是一个文件 URL(以“file:”开头)。如果您的类嵌入在 jar 文件中,情况肯定不会如此,这就是为什么它在某些情况下会失败而在其他情况下不会失败的原因。

如果您的目的是让用户真正看到文件系统的一部分,那么我建议完全避免使用 getResource,这通常在您的应用程序希望定位和加载资源(例如图标或配置文件)时更有用.

相反,您可以使用 JFileChooser ,这是一个丰富的 Swing 组件,用于导航文件系统和选择文件。

关于java - 尝试在 java 中使用 list() 或 listFiles() 从目录中获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2333968/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com