2012-04-27 11 views
0

C#の特定のディレクトリからFileNamesをバッファリングする方法を見つけようとしています。これによって私は意味:指定されたディレクトリ内のバッファファイル名

指定されたディレクトリ

C:/ MYDIRファイルが含まれてい

File1_orig.txt

をFile1_edited.txt

File2_orig.txt

File2_edited.txt

...

Filen_orig.txt

Filen_edited.txt

私は、ファイル名(全体ではなくファイルパスを保存したいですファイル名、例String [] filename = Filen_orig.txt)を一時的な文字列に変換し、単純な比較を実行して、それらに目的の文字列が含まれているかどうかを確認します。検査されているファイルを編集するかどうかを確認します(* _edited.txt)またはオリジナル(* _original.txt)、および、場合には

while(STILL FILES IN DIRECTORY) 
{ 
    string[] exFileName = {BUFFER FILENAME HERE} 
    string[] words = exFileName.Split('_'); 
    string[] toCompare = "edited"; 
      bool result; 
      foreach (string word in words) 
      { 
       Console.WriteLine(word); 
       bool result = toCompare.Equals(word, StringComparison.OrdinalIgnoreCase); 
       if (result) 
       { 
        Console.WriteLine("success"); 
       } 
      } 
      Console.ReadLine(); 

:私はに文字列を渡すしたい

ファイルが編集され、さらにファイルが処理されます。

誰もファイルパスを自動化する方法を知っていますか?

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

+0

あなたがここで何を求めているのかは不明です。ファイル名をバッファリングしますか?またはファイルの内容ですか?いずれにせよ、ここであなたが求めるのは、「どのように文字列のリストを保存するのですか?」ということです。その答えはおそらく 'List 'で! –

答えて

1

あなたがいずれかのファイルが_editedビットが含まれているかどうかを確認したい場合は、あなたが使用することができます。

bool success = Directory.GetFiles(@"c:\MyDir").Any(p => p.Contains("_edited")); 

私は「これはあなたのコードはにISNので、あなたが望むものである推測のビットを作ってるんです非常に明確なT(もあなたの説明である)

編集:また、

  foreach(var file in Directory.GetFiles(@"c:\MyDir").Where(p => p.Contains("_edited"))) 
     { 
      Console.WriteLine(" {0}: edited", file); 
     } 

「Syのを使用している必要があります:すべて編集したファイルを表示しますstem.Linq "

+0

ContainsIgnoreCase関数があるかどうか知りませんか?私は良いものに見えません。私はすべての文字列を下限または上限に変換する必要がありますか? – gfppaste

+0

私は個人的にはToLowerを使用しますが、より速い方法があるかもしれません... p.ToLower()。その場合は( "_ edited")を含みます。 IMOはあなたが読んでいるところで最も理にかなったものを使用しますが、スピードの違いは非常に低くなる可能性があります。 – Sprague

1

DirectoryInfo.GetFiles

DirectoryInfo di = new DirectoryInfo(@"c:\"); 

// Get only subdirectories that contain the letter "p." 
FileInfo[] files= di.GetFiles("*.txt"); 

foreach (FileInfo fi in files) 
{ 
    string exFileName = fi.FileName; 
    ... 
} 
関連する問題