1

ディレクトリ内のフォルダ(サブフォルダではない)のすべての名前を読み取り、リストをなどに保存することは可能ArrayListですか?

たとえば、ディレクトリ内に次のフォルダがある場合-CLIENT1、CLIENT2、CLIENT3など。このArrayListようなものにしたい-[CLIENT1、CLIENT2、CLIENT3など]。

フォルダはUNIXサーバー内にあるため、Javaコードまたはシェルスクリプト(bash / tcsh / etc)、あるいはそれらの組み合わせで問題ありません。

4

3 に答える 3

0

これを試して:

File dir = new File("directoryName");
File temp;
String[] children = dir.list();
if (children !=null) {
    for (int i=0; i<children.length; i++) {
        temp = new File(children[i]);
        if(temp.isDirectory()) //add children[i] to arrayList
    }
}
于 2012-09-23T05:45:59.227 に答える
0

以下のJavaコードスニペットが役に立ちます。ディレクトリ内のすべてのフォルダのリストを返します。考えられるIO例外を処理する方法に基づいて、空のリストを返す場合があります。

public List<String> getDirectoriesInFolder(String folderPath)
{
     List<String> folderNames = new ArrayList<String>();
     try
     {
         File directory = new File (folderPath);
         String[] allFilesInFolder = directory.list();
         for(String fileName : allFilesInFolder)
         {
            File f = new File(fileName);
            if(f.isDirectory)
            {
               folderNames.add(fileName);
            } 

         }

     }
     catch(IOException iex)
     {
          //Do any exception handling here...
     }
     return folderNames; 
}

シェルスクリプトを使用してそれを実行したい場合は、以下のリンクで提供されるガイダンスが解決策を見つけるのに役立つはずです。

ディレクトリを一覧表示するスクリプトを支援する

bash:からlsの出力を配列に入れます

于 2012-09-23T06:06:40.303 に答える
0

new File()これは、毎回作成する鈍い反復よりも少しすっきりしているように感じます。

public class DirFilter implements FileFilter {
    public static FileFilter INSTANCE = new DirFilter();
    @Override
    public boolean accept(File file) {
        return file.isDirectory();
    }
}

File startDir = .....;
List<File> children = Arrays.asList(startDir.listFiles(DirFilter.INSTANCE));
于 2014-07-04T02:10:50.723 に答える