2012-03-04 7 views
1

getlist 및 복사본에 관한 이전 쿼리에 대한 제안에 대해 감사드립니다. 나는/그래서 난 = "테스트"오히려 GetFile 원격 서버에서 로컬 서버로 목록 복사 및 복사

이상의 문자열 realname처럼 사용할 수있는이 어쨌든이며, DB에서이 값을 얻고 // 하나 여기에 문제

문자열 realname = "테스트"가/내가 문자열처럼 할 수 있다는 것을 알고 realname = ""+ Dbvalue + "";

"*"을 사용하지 않으면 왜 anyvalue를 반환하지 않는지 궁금합니다.

class Program 
    { 
     static void Main(string[] args) 
     { 
      var getfiles = new fileshare.Program(); 

      string realname = "*test*"; 
      foreach (var file in getfiles.GetFileList(realname)) 
      {getfiles.copytolocal(file.FullName); } 

      } 
     private FileInfo[] GetFileList(string pattern) 
     { 
      var di = new DirectoryInfo(@"\\testserv01\dev"); 
      return di.GetFiles(pattern); 
     } 
     private void copytolocal(string filename) 
     { 
      string nameonly = Path.GetFileName(filename); 
      File.Copy(filename,Path.Combine(@"c:\",nameonly)); 

     } 
     } 

감사합니다.

답변

3

나는이 조금 입심 알고 있지만 정말 당신이 사용하고있는 기능의 문서를보고 시작해야합니다 이유는 * 와일드 카드이라고 말했다

http://msdn.microsoft.com/en-us/library/8he88b63.aspx - 당신이 "테스트"를 사용하는 경우 그러면 "테스트"와 정확히 일치하는 것을 검색 할 것입니다.

위의 링크에는 몇 가지 예가 더 있습니다.

+0

if (file.contains ("test")) – Usher

+1

예제 파일에서 FileInfo의 인스턴스입니다. FileInfo에는 "contains"메소드가 없습니다. 내가 가지고 있어야하는 유일한 컨텍스트는 사용자가 질문하는 질문에 기초하여 게시물의 정보입니다. DirectoryInfo 검색에서 반환되는 FileInfo []에 대해 두 번째 일치 항목을 수행해야하는지 묻습니다. 이 경우 대답은 '아니요'입니다. 와일드 카드 검색을 정확하게해야합니다. 두 경우 모두 파일 시스템 검색의 오버 헤드가 발생하여 두 번째 일치의 오버 헤드 (& 복잡성)를 피할 수 있기 때문입니다. – dice

관련 문제