2012-04-27 3 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

, 당신은 사용할 수 있습니다 :이 추측의 비트를 만들고있어

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

을 당신이 원하는 무엇 때문에 코드의 ISN ' 편집 한 모든 파일을 보여주기 : 또한

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

를, "싸이를 사용하고 있어야합니다 매우 명확 t

편집 (도는 설명입니다) 줄임표 .Linq "

+0

ContainsIgnoreCase 함수가 있는지 당신은 알지 못합니다? 나는 하나 좋아 보이지 않을 수 있습니다. 나는 모든 문자열을 하위 또는 상위로 변환해야합니까? – gfppaste

+0

개인적으로 ToLower를 사용 하겠지만 빠른 방법이있을 수 있습니다 ... p.ToLower().이 경우 ("_ 편집 됨"). IMO는 당신에게 가장 이해가되는 것을 사용합니다. 속도의 차이는 매우 낮습니다. – Sprague

1

어때 대략 DirectoryInfo.GetFiles? 어떤 파일이 _edited 비트가 포함되어 있는지 확인하려면

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; 
    ... 
} 
관련 문제