2017-01-26 20 views
0
File fe = new File("C:\\Users\\" + System.getProperty("user.name") + "\\desktop" + "\\SearchResults.txt"); 
    String customLoca = "C:\\Users\\" + System.getProperty("user.name") + "\\AppData" + "\\roaming" + "\\.minecraft" + "\\mods" + "\\1.7.10"; 

    FileWriter fw = null; 
    try { 
     fw = new FileWriter(fe); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    File dir = new File(customLoca); 
    for (File f : dir.listFiles()) { 
     if (f.getName().contains("Toggle")){ 
      try { 
       fw.write("Found: " + f.getName()); 
       fw.write("\r\n==="); 
       fw.write("\r\n"); 

      } catch (Exception ex) { 
       ex.printStackTrace(); 
      } 

     } 
    } 
    try { 
     fw.close(); 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

} 
} 

を検索することができます基本的には上記のコードはで結果をテキストドキュメントを作成します。これは、しかし、私はそれを見つけたいファイルを大文字と正確なことを確認する必要があります動作します。 。たとえば、「トグル」を「トグル」に置き換えた場合、何も表示されません。このケースを無視する方法はありますか?また、else引数を追加する方法もあります。だから何も見つからなければ、テキスト文書に「何も見つかりません」と表示されます。ありがとう。Javaのディレクトリ検索 - 敏感なキャストのみ1列

答えて

0

あなたのチェックに!string.equalsIgnoreCase()で試すことができます - このような何かを適用しよう:

if (!toggle.equalsIgnoreCase(file.getName())) 

EDIT:

ます。また、コードのこの部分をリファクタリングしようとすることができます:

 StringBuilder paragraph = new StringBuilder(); 
     paragraph.append("I am at office.") 
       .append("I work at oFFicE.") 
       .append("My OFFICE"); 
     String searchWord = "office"; 
     Pattern pattern = Pattern.compile(searchWord, Pattern.CASE_INSENSITIVE); 
     Matcher matcher = pattern.matcher(paragraph); 
     int count = 0; 
     while (matcher.find()) 
      count++; 
     System.out.println(count); 
+0

私は確かに作成する必要があります!変数に切り替えますか?私は基本的にそれが "トグル"を含むファイル名を持つファイルのディレクトリを検索したい。また、複数の引数を追加したいと思います。それで、ファイル名を "トグル" + "CPS" + "方向"を検索します – harry

0

名前全体を照合する必要があるため、equalsIgnoreCase()は使用できません。 勧告:

  • 試みは、複数の試行を全体の方法をまたがることができるリソースをしてみてくださいあなたの名前

  • 使用を一致させるために正規表現を使用して、より遅い

  • 使用のStringBuilderにあります猫のひも(以前のように重要ではない)

  • Javaは、\ rを必要としない - OS適切な改行に

  • を書き込みます例外をキャッチすることはありません\ nは、これはあなたが文字列を使用することができますovergeneralization

  • ある他の作品が、代わりに他の「リセット」同じように。

    File fe = new File("C:\\Users\\" + System.getProperty("user.name") + "\\desktop" + 
              "\\SearchResults.txt"); 
    String customLoca = 
         "C:\\Users\\" + System.getProperty("user.name") + "\\AppData" + "\\roaming" + 
           "\\.minecraft" + "\\mods" + "\\1.7.10"; 
    
    try (FileWriter fw = new FileWriter(fe)) 
    { 
        File dir = new File(customLoca); 
        for (File f : dir.listFiles()) 
        { 
         String contents = "Nothing Found"; 
         if (f.getName().matches("(?i).*toggle.*"))); 
         { 
          contents = new StringBuilder("Found: ") 
             .append(f.getName()) 
             .append("\n===\n").toString(); 
         } 
         fw.write(contents); 
        } 
    } 
    catch (IOException ioe) 
    { 
        ioe.printStackTrace(); 
    } 
    
+0

こんにちは、このコードは同じことをしていますありがとうございます。ディレクトリ内のすべてのファイルを一覧表示しますか?私はスクリーンショットを投稿します:https://gyazo.com/b47ccba9b76bb39e2f6d0bc65e54fbf7 – harry

+0

f.getName()。一致( "(?i)トグル") トグル、トグル、トグルのような名前にしか一致しません。そうでなければ、私はRegExの作成に間違いを犯しました。これらのケースに一致するように変更します。これは素晴らしい単位テストです。 – WillD

+0

Regex編集済みおよびWFM。もう一回やってみよう。 これはどんな場合でも "トグル"を含む文字列と一致することに注意してください。それは "dToGleertY"と一致しますが、 "dToGleERTY" – WillD

関連する問題