2013-03-10 11 views
9

Ho bisogno di memorizzare dati personalizzati con un file nel file system (circa 50 byte con ogni file). Non ho altri archivi per conservare i dati e non posso creare un file aggiuntivo per questo. Queste sono le mie esigenze Non posso cambiarlo.Quali file di sistema supportano Java UserDefinedFileAttributeView?

Ho trovato che questo può essere fatto usando la classe UserDefinedFileAttributeView.

Quali file system supportano questa funzionalità? NTFS, FAT, qualsiasi altro file system su Linux?

Dove i dati vengono effettivamente memorizzati e quanto è affidabile?

risposta

5

Ho verificato che gli attributi personalizzati sono supportati dai seguenti file system tramite UserDefinedFileAttributeView: NTFS, Ext4, ZFS. Anche altri file system popolari possono supportarli. Nessun supporto è stato trovato nei seguenti file system FAT32, HFS +.

2

Non ho trovato alcun elenco completo di tutti i file system supportati. Sembra che siano supportati molti file system moderni (ntfs, ext *). L'unico modo per utilizzare correttamente queste proprietà definite dall'utente è chiamare supportsFileAttributeView prima di leggere e scrivere i dati.

Si potrebbe anche provare a Preferences API memorizza i dati in alcuni archivi gestiti da JVM, quindi tecnicamente non si creano file.

4

Ho scoperto che basandomi su qualche elenco non basta personalmente. C'è sempre un modo per chiedere l'implementazione sottostante, quali viste sono supportate e anche se è supportata una vista concreta. Partenza seguente codice:

final FileSystem defaultFS = FileSystems.getDefault(); 

for (String fileAttributeView : defaultFS.supportedFileAttributeViews()) { 
    System.out.println("Default file system supports: " + fileAttributeView); 
} 

Con una produzione:

Default file system supports: acl 
Default file system supports: basic 
Default file system supports: owner 
Default file system supports: user 
Default file system supports: dos 

Si può leggere di più nel mio post su File attributes in NIO.2