【发布时间】:2015-05-26 18:12:51
【问题描述】:
我正在尝试读取其中包含三个不同图像的图像文件夹的内容。我能够找到该文件夹,但它不允许我阅读内容。 IT 给出了异常,说找不到文件(访问被拒绝)。我在 C 驱动器中的 Java 文件夹的本地系统上更改了自己的访问权限,但问题仍然存在。我阅读了这个问题Access is denied java.io.FileNotFoundException,需要提供该文件名,但该文件夹的路径已经包含文件名。我究竟做错了什么?如果这有什么不同,我正在研究一个 Maven 项目。任何帮助表示赞赏。谢谢。
public void getImagesFolder(){
String fileLoc = this.getClass().getResource(IMAGE_FILE).getPath();
int indexIs =fileLoc.indexOf("images/");
String partialPathOfFileLoc = fileLoc.substring(0, indexIs);
// try
// {
// //bufferedReader = new BufferedReader(new FileReader(partialPathOfFileLoc + IMAGE_FILE_WOSLASH));
// bufferedReader = new BufferedReader(new FileReader(fileLoc));
// while((line = bufferedReader.readLine()) != null){
// String imageName = line;
// System.out.println("Image name is: "+ imageName);
// }
// }
// catch (FileNotFoundException e1)
// {
// e1.printStackTrace();
// }
// catch (IOException e)
// {
//
// e.printStackTrace();
// }
File f = new File(fileLoc);
File[] paths;
paths = f.listFiles();
int filesLength =paths.length;
System.out.println("Files length is: "+ filesLength);
for(File path:paths)
{
// prints file and directory paths
System.out.println(path);
}
【问题讨论】:
-
Access is denied是您需要结帐的东西。应用程序可能没有对该文件夹或文件的读取权限。 -
也许在目录上尝试 .listFiles() 看看有什么可用的。如果您在正确的位置,但没有看到您要查找的文件,请检查应用程序的权限以确保它可以读取/写入文件夹。
-
根据@Sh4d0wsPlyr 的建议,我尝试运行一个sn-p 代码。请参阅我上面的编辑。但请注意,我使用 File 而不是 BufferedReader 运行该代码。为什么BufferedReader的FileReader找不到文件,而File却可以?
-
根据@Saket Mittal 给出的答案,您是否可以在其他地方打开文件?如果您使用的是 BufferedReader,但文件已打开/等,它可能会拒绝您的许可。除此之外,据我所知,两者之间应该没有显着差异。
-
@Saket Mittal,包含图像文件的文件夹已关闭。另外,我认为如果文件打开,File 对象也会抱怨,但在这种情况下不会引发异常。