Как я могу проверить разрешение файла прямо в Java? - PullRequest
0 голосов
/ 06 декабря 2018

Я пишу файловый менеджер.Это работает просто отлично на самом деле.Но когда я пытаюсь открыть определенные файлы, я получаю сообщение об ошибке.Когда я ввожу путь к этим файлам в проводнике 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
  }

Спасибо за любую помощь!

...