Domanda

Ho incontrato una situazione in cui file.isfle () restituisce false, il che indica che il file non è "normale". Tuttavia, non riesco a trovare una definizione di cosa significa "normale". I documenti link a Oracle Stato:

.

Un file è normale se non è una directory e, inoltre, soddisfa altri criteri dipendenti dal sistema.

Il file è di proprietà di _www:staff e ha autorizzazioni -rw-r--r--. La directory è anche di proprietà di _www:staff e ha autorizzazioni drwxrw-r--. Il processo che sta accedendo al file è di proprietà di bob:staff. Il sistema è MacOS 10.9. Il processo può leggere e caricare e visualizzare il file solo bene; L'unico problema è che la chiamata a isfile () restituisce false, il che significa che Java pensa che non sia un file normale.

Quindi, per tornare alla domanda più ampia, in quali condizioni questa chiamata restituirà false anche se il file esiste, il percorso è corretto e il file è accessibile?

È stato utile?

Soluzione

.

La directory è anche di proprietà di _www:staff e ha autorizzazioni drwxrw-r--.Il processo accessibile al file è di proprietà di bob:staff.

Il processo non ha il permesso "X" (esaminare) nella directory.Il sistema chiama che il JVM utilizza per eseguire File.isFile() richiede questa autorizzazione.Questa chiamata di sistema è in mancanza, quindi per quanto riguarda File.isFile(), il file non esiste.

È quasi sempre un errore rimuovere il permesso "x" su una directory garantendo il permesso di "R".

Altri suggerimenti

In un sistema UNIX, un file può essere A:

    .
  • file regolare
  • Directory
  • link simbolico
  • Pipe denominata
  • Socket
  • File del dispositivo
  • Porta (Sun Sistema Solaris)

Il file "normale" si riferisce a un file regolare qui.È un unico tipo di file in cui il sistema non impone alcun requisito sulla struttura interna del file.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top