2011-07-08 8 views
2

Eclipseプラグインを開発しています。ディレクトリーとディレクトリー全体の内容をトラバースする必要があります。プラグイン(bundleresource)内のファイルをInputStreamとして読み込むメソッドが見つかりました。eclipseプラグインの開発でInputStreamを使用してディレクトリーを読み取る方法

InputStream stream = Activator.class.getResourceAsStream("/dir1/dir2/file.ext"); 

この方法はファイルのみに有効です。私はディレクトリを読み、サブディレクトリとFile.ioのようなファイルをリストする方法が必要です。

ありがとうございました。

答えて

0

プラグインのリソースディレクトリを読み込みますか?そうしないと、ディレクトリを横断し、ファイルごとに1つのストリームをオープンする必要があります。

String path = "c:\\temp\\"; 
    File directory = new File(path); 
    if (directory.isDirectory()) { 
     String[] list = directory.list(); 
     for (String entry : list) { 
      String absolutePath = path + entry; 
      System.out.println("processing " + absolutePath); 
      File file = new File(absolutePath); 
      if (file.isFile()) { 
       FileInputStream stream = new FileInputStream(file); 
       // use stream 
       stream.close(); 
      } 
     } 
    } 

あなたにもサブディレクトリをトラバースする場合は、再帰的なメソッドにこれをラップする必要がありますfileがディレクトリであるかどうかをチェックし、中に再帰的なメソッドを呼び出しますこの場合。

+0

プラグイン・ディレクトリでは、ファイル・プロトコル(またはFile.IO) を使用することはできません。プラグインをEclipseにインストールすると、resourcebundleプロトコルがファイル・システムとして使用されます。プラグインでフォルダのパスを取得しようとすると、パスが役に立たないため、「/resourcebundle//173/documents/templateproject.properties」というようなものがあり、File IOはこのパスを受け入れません。私は一定のファイルの場所を持たないでいくつかのディレクトリを横断したい。ディレクトリやその他のものと親子関係が必要です –

+0

私が知る限り、リソースディレクトリを移動することはできません。 – Kai

関連する問題