sto elenco di file utilizzando il metodo File.listFiles()
in java.io.File
ricevendo, ma restituisce alcuni file di sistema come (.sys
e etc
) .. Ho bisogno di escludere tutti i file relativi al sistema (Windows, Linux, Mac) durante la restituzione degli elenchi. Qualcuno può risolvere il mio problema?file di sistema escludendo in file.lists() in Java
risposta
Non penso che ci sia una soluzione generale a questo. Per cominciare, i sistemi operativi come Linux e MacOS non hanno una nozione chiara di un "file di sistema" o di un modo ovvio per distinguere un file di sistema da un file non di sistema.
Penso che la tua scommessa sia decidere cosa intendi per file di sistema e scrivere il tuo codice per filtrarli.
In genere il filtraggio degli elenchi di file viene effettuato utilizzando il filtro file.
new java.io.File("dir").listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
// add here logic that identifies the system files and returns false for them.
}
});
Il problema è come si definiscono i file di sistema. Se per esempio vuoi filtrare tutti i file con l'estensione .sys
è semplice. In caso contrario, si prega di definire i criteri. Se hai difficoltà ad attuare i tuoi criteri, fai una domanda specifica.
Come altri hanno fatto notare, alcuni sistemi operativi non hanno una definizione di "file system" .
Tuttavia, se si utilizza Java 7, v'è una nuova estensione chiamata NIO.2 che potrebbe aiutare in ambiente Windows:
Path srcFile = Paths.get("test");
DosFileAttributes dfa = Files.readAttributes(srcFile, DosFileAttributes.class);
System.out.println("isSystem? " + dfa.isSystem());
mi piacerebbe implementare un semplice FileFilter
con la logica per determinare, se un file è un file di sistema o no e usa un'istanza come AlexR showed in his answer. Qualcosa di simile (le regole un solo a scopo dimostrativo!):
public class IgnoreSystemFileFilter implements FileFilter {
Set<String> systemFileNames = new HashSet<String>(Arrays.asList("sys", "etc"));
@Override
public boolean accept(File aFile) {
// in my scenario: each hidden file starting with a dot is a "system file"
if (aFile.getName().startsWith(".") && aFile.isHidden()) {
return false;
}
// exclude known system files
if (systemFileNames.contains(aFile.getName()) {
return false;
}
// more rules/other rules
// no rule matched, so this is not a system file
return true;
}
- 1. Escludendo campi in JAXB
- 2. Suoni di sistema in Java
- 3. Java copiare una cartella escludendo alcuni file interno
- 4. Tentativo di sincronizzare un sistema di scrittura file in java
- 5. Quali file di sistema supportano Java UserDefinedFileAttributeView?
- 6. NSIS - Come copiare ricorsivamente escludendo i file?
- 7. Sistema di impronte digitali audio in Java
- 8. Escludendo i test da eseguire in IntellIJ
- 9. Variabile ambiente di sistema Java
- 10. Come passare le proprietà di sistema in un file jar
- 11. Ottieni l'indirizzo MAC del sistema in Java
- 12. Scarica la dimensione del blocco di sistema in Java
- 13. Sistema distribuito Java
- 14. Findbugs non escludendo metodi nella nostra applicazione java
- 15. Escludendo date uniche
- 16. Come effettuare chiamate di comando di sistema in Java/Groovy?
- 17. file di classe in conversione file java
- 18. Che cosa è sistema, fuori, println in System.out.println() in Java
- 19. In che modo Java determina la proprietà di sistema 'file.encoding'?
- 20. Come aggiungere nuove proprietà di sistema in java
- 21. proprietà di sistema Set java in IntelliJ o Eclipse
- 22. È necessario un caricatore classe di solo sistema Java
- 23. Chi implementa l'interfaccia del sistema operativo in java?
- 24. chiamata di sistema in Ruby
- 25. Java: file in esadecimale?
- 26. Trascinare i file dal sistema operativo all'applicazione Java (Swing)
- 27. Eclipse: JRE Sistema Bibliotecario in Java Build Path azzerato
- 28. tabelle file di sistema Unix
- 29. Come unire due file in un sistema di controllo versione
- 30. memorizzare l'immagine nel database o in un file di sistema?
Come si definisce "i file di sistema"? – dmeister
Non puoi filtrare tu stesso l'elenco risultante per escludere i file che non vuoi? – Bernard