2010-05-29 4 views
1

Comment lire les informations du fichier (par exemple taille, nombre de lignes, dernière modification, etc.) à partir d'un fichier du système de fichiers ou du contenu du répertoire avec Java? Je travaille actuellement sur le système d'exploitation Linux. Veuillez donner quelques idées particulièrement pour Linux OS.Lire les propriétés du fichier/répertoire avec java

Merci à l'avance.

Répondre

1

Essayez de rechercher le fichier api. Il y a un tas de méthodes comme 'lastModified', 'length', et la plupart de ce dont vous avez besoin.

1

Utilisez classe File (sauf pour line count - see this Q/A for that)

java.io.File.length()

lastModified()

En outre, si vous pouvez obtenir votre programme Java pour faire un appel système, pouvez utiliser la commande wc -l d'Unix pour compter les lignes pour vous - peut être plus rapide que Java mais vous coûte un processus généré

+0

merci beaucoup, mais aucune idée de nombre de lignes ?? Je ne veux vraiment pas lire tout le dossier: S. Ce n'est pas une option, ce sont vraiment des fichiers volumineux. – Pizza

+0

Voir le lien dans ma première ligne pour le nombre de lignes. En outre, vous pouvez LineNumberReader - voir http://www.roseindia.net/java/example/java/io/NumberOfLine.shtml – DVK

+0

Et non, vous ne pouvez pas vraiment compter les lignes dans un fichier sans réellement lire le fichier, sauf si le format de fichier stocke explicitement le nombre de lignes comme un nombre au début ou à la fin du fichier (certains formats de fichiers le font). – DVK

2

Pour ce que cela vaut, "line count" n'est pas un attribut de fichier sous UNIX ou Linux.

Si vous voulez un nombre de lignes (en supposant que ce soit un concept valide), vous devez le comprendre en lisant le fichier. Le simple fait de compter les caractères de nouvelle ligne donne une réponse à peu près correcte pour les fichiers "texte", mais cela peut donner une fausse réponse dans d'autres cas. Une réponse complète implique:

  • déterminer le type du fichier,
  • décider si « nombre de lignes » est logique pour le type de fichier,
  • décider de compter les lignes ou récupérer un nombre de lignes à partir interne du fichier metadata, et
  • (si nécessaire) en comptant les lignes d'une manière appropriée au type de fichier.

Les autres attributs que vous avez énumérés (taille de fichier et le temps de modification) peuvent être consultées en Java en utilisant l'API java.io.File classique, ou la nouvelle API Java 7 java.nio.file.Files.

+0

le fichier est un fichier journal d'apache, il s'agit donc d'un texte brut. La seule solution est de compter les lignes. Je vais essayer de compter avec Java. – Pizza

Questions connexes