首页 > 解决方案 > 如何在java中测试文件的权限?

问题描述

我正在写一个文件资源管理器。它实际上工作得很好。但是当我尝试打开特定文件时,出现错误。当我在 Windows 的文件资源管理器中输入这些文件的路径时,我无法访问它们,所以我猜测这就是错误的原因。不,我不想在我的文件资源管理器中显示这些文件。

我测试了以下内容:

 File F = new File(path);
    Path P = Paths.get(path);
    if(Files.isWritable(P)==true){
        //do stuff
    }

 File F = new File(path);
    Path P = Paths.get(path);
    if(Files.isExecutable(P)==true){
        //do stuff
    }

而不是isWriteable我也试过:

 F.canWrite();

 F.canRead();

不幸的是,即使我无法访问文件,它也总是返回 true。让我感到困惑的是,错误如下:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at inst.FilesChange.ShowFiles(FilesChange.java:29)
at inst.FilesChange.NextFiles(FilesChange.java:54)
at inst.JFD3Installer$5.mouseClicked(JFD3Installer.java:127)
at java.awt.AWTEventMulticaster.mouseClicked(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)

但是文件列表:

  File L[] = F.listFiles();

不是空的或任何东西,但我可以在

L.lenght();

这也不起作用:

 if(L.length>0){
     /do stuff
  }

谢谢你的帮助!

标签: javafilepermissions

解决方案


推荐阅读