2016-11-30 1 views
0

이상한 문제가 있습니다. 디렉터리를 검색하고 파일 목록을 가져 오는 응용 프로그램이 있습니다. 그것을 읽고 각 항목을 수행하여 각 파일을 처리합니다. 개발 컴퓨터에서 잘 작동하지만 클라이언트에 배포하면 오류가 발생합니다. 여기에 코드주어진 경로는 지원되지 않습니다. C#

public void ProcessIMFiles() 
    { 
     DirectoryInfo di = new DirectoryInfo(Globals.ITMDIR); 
     FileInfo[] Files = di.GetFiles("*.txt");    
     foreach(FileInfo file in Files) 
     { 
      try 
      { 
       processThisIMFile(file.FullName); 
       movefile(file.FullName); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("error : " + ex.Message); 
      } 
     } 
    } 

오류가 processThisIMFile (file.FullName)에 대한 호출에서 일어나는 아래 참조에게 있습니다. Globals.ITMDIR은 유효한 경로입니다.

private void processThisIMFile(string FileName) 
    { 
     string[] Fields = null; 
     setconnection(); 
     DataTable dt = null; 
     try 
     { 
      string[] Lines = System.IO.File.ReadAllLines(FileName); 

      foreach (string line in Lines) 
      { 
       Fields = line.Split(Globals.delimiter); 
       if (Fields.Length == 7) 
       { 
        //stuff happens here 
       } 
     }//Try 
     catch (Exception e) 
     { 
      if (Interactive) 
      { 
       MessageBox.Show("Error in the Path: ->" + FileName); 
       writeToLog(true, "error opening file " + FileName); 
      } 
     } 
    }//end of processThisItemFile 

오류는 "문자열 [] = System.IO.File.ReadAllLines 라인 (파일 이름)" 라인에서 일어난다. FileName은 di.GetFiles ("*. txt")에서 가져옵니다. 내가 실제 경로를 보여줄 때 나에게는 괜찮아 보인다. C : \ tmp \ filename.txt 또는 \\ server \ tmp \ filename.txt와 같이 UNC 경로 및 드라이브 문자 경로를 사용하여 시도했습니다. "주어진 경로는 지원되지 않습니다."라는 오류 메시지가 나타나기도하지만 실패합니다. 개발 기계에서.

무슨 일입니까?

+0

가능한 한 많은 로그가 필요합니다. http://stackoverflow.com/questions/7348768/the-given-paths-format-is-not-supported – MWS

+0

'processThisIMFile'에'FileName'을 기록하십시오 –

답변

0

파일 경로 문자열을 변경하고 용납 할 수없는 결과를주는 file.fullname과 관련 될 수 있는지 궁금합니다. processThisIMFile(Path.GetFullPath(file))을 사용하여 문제를 해결할 수 있습니까? 또한 processthisimfile 앞에 messagebox.show(file.FullName)을 사용하여 결과가 예상 한 것과 같은지 확인하십시오.