2016-12-22 3 views
-3

リモートサーバーに接続しようとしていて、ファイルを検索するためにそのサーバーの特定のディレクトリにアクセスしようとしていますが、実際には存在するにもかかわらずサーバー上にディレクトリが存在しないことを示しています。私は私のファイルパスが間違っていると推測しています。誰かが私が文法エラーを起こした場合、私に示唆してもらえますか?asp.net C#でファイルにアクセスする際の問題

filepath = @"\\172.17.20.11\E$\MessageLogs\" + logType + "\\" + country + "\\" + year + "\\" + month + "\\" + day + "\\"; 

private void GetFiles(string filePath) 
    { 
     try 
     { 
      tblFileContent = new DataTable(); 
      getColumns(tblFileContent); 
      //C:\MessageLogs\ElmaCore\KENYA\2016\March\22 
      //filePath = @"C:\MessageLogs\"+filePath; //Pick a folder on your machine to store the uploaded files 

      if (!Directory.Exists(filePath)) 
      { 
       fn.MessageLine(this.Page, "Log folder does not exist.", System.Drawing.Color.Red, "lblMessageLine"); 
       dtDate.Focus(); 
       return; 
      } 

      string searchReference = txtReference.Text.Trim(); 
      //string filePath = System.Configuration.ConfigurationManager.AppSettings["InFolder"].ToString(); 

      DirectoryInfo DirInfo = new DirectoryInfo(filePath); 
      FileInfo[] CsvFiles = DirInfo.GetFiles("*" + searchReference + "*.log").OrderByDescending(p => p.LastWriteTime).ToArray(); 


      if (CsvFiles.Length > 0) 
      { 
       foreach (var file in CsvFiles) 
       { 
        string FileName = file.Name; 
        string sourceFile = System.IO.Path.Combine(filePath, FileName); 

        ProcessFile(FileName, sourceFile); 



       } 

       //LoadGrid(); 
      } 
      else { 
       fn.MessageLine(this.Page, "Sorry, No files found for the specified reference.", System.Drawing.Color.Red, "lblMessageLine"); 
       txtReference.Focus(); 
       return; 
      } 
     } 
     catch (Exception ex) 
     { 
      fn.MessageLine(this.Page, "Sorry an Error Occured. Please try again", System.Drawing.Color.Red, "lblMessageLine"); 
      ErrLogger.LogError("filelog-" + ex.Message); //oledbconn.Close(); 
      return; 
     } 

    } 
+3

構文エラーが発生した場合、コンパイルできません。ディレクトリが実際に存在する場合、これはアクセス許可の問題です。 – CodeCaster

+0

権限がないか、フォルダがネットワーク上で共有されていません。 (プログラムがフォルダ名を正しく生成していることを確認したと仮定して) – ADyson

+0

[ディレクトリ.Existsはネットワークパスで動作しません](http://stackoverflow.com/questions/10196811/directory-exists-not-working -for-a-network-path)を指定します。 – CodeCaster

答えて

0

あなたのディレクトリが存在すると言うよりも、許可の問題がある可能性があります。 コードが実行されているアカウントにそのフォルダに対するアクセス権があることを確認してください。

IISにデプロイした後は、許可を得ているドメインユーザーにアプリプールのIDを変更することにも注意してください。

許可の問題があるかどうかを確認する場合は、これを行うだけです。 そのフォルダを右クリックし、全員に権限を与えてテストします。

関連する問題