2010-01-05 3 views
1

Toute personne connaissant une méthode/classe/bibliothèque qui me permettra de reproduire facilement les résultats de la commande * nix ls -l en Java? Appeler ls directement n'est pas une option en raison de l'indépendance de la plate-forme.* Commande Nix ls en Java

par ex. $ ls -l MyProgram.exe

-rwxrwxrwx 1 auser Aucun 1261568 15 novembre 17h41 C: \ myprogram.exe

+4

Pour clarifier les choses, pouvez-vous dire exactement quelle partie (s) de la sortie « ls -l » dont vous avez besoin? Par exemple, si vous aviez juste besoin de la taille du fichier et de la date de modification, un objet java.io.File ancien devrait faire l'affaire. Mais si vous voulez aussi les informations d'autorisation, vous entrez dans un territoire spécifique à la plate-forme et vous aurez besoin de classes plus sophistiquées. – Jeff

+0

Excellent point. Je porte un script ksh existant, donc j'espérais trouver une méthode dans l'Ether pour l'utiliser. Absent que je vais probablement prendre juste ce qui est disponible dans java.io.File. – javacavaj

Répondre

0

Je pense que nous ne sommes pas prêts à utiliser la classe Java dans la bibliothèque java stadard. Mais vous pouvez développer un outil comme l'outil * nix ls -l en utilisant des classes dans le paquet java.io.

0

est ici une implémentation de ls -R ~, qui énumère les fichiers commençant récursive dans le répertoire:

import java.io.*; 

public class ListDir { 

    public static void main(String args[]) { 
     File root; 
     if (args.length > 0) root = new File(args[0]); 
     else root = new File(System.getProperty("user.dir")); 
     ls(root); 
    } 

    /** iterate recursively */ 
    private static void ls(File f) { 
     File[] list = f.listFiles(); 
     for (File file : list) { 
      if (file.isDirectory()) ls(file); 
      else System.out.println(file); 
     } 
    } 
} 
Questions connexes