2016-11-30 41 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)を使用して、結果が期待どおりであることを確認します。

関連する問題