0

C:/ imagesフォルダーからサーバーで実行されているWebアプリケーションフォルダーに画像をコピーする必要があります。ローカルアプリケーションでは正常に機能しますが、サーバーでは機能しない次のコードを使用しました。

   string sourcePath = @"D:\images";
   //string destinationPath = @"D:\a";
   string destinationPath = Server.MapPath("SMSImages") + "\\";
   if (System.IO.Directory.Exists(sourcePath))
   {
      string[] files = System.IO.Directory.GetFiles(sourcePath);
       foreach (string s in files)
        {

         fileName = Path.GetFileName(s);
         destFile = Path.Combine(destinationPath, fileName);
         File.Copy(s, destFile, true);

       }

コピーする方法

4

2 に答える 2

0

サーバーには、多くの場合、IIS ユーザーに対して多くのセキュリティ制限があります。

asp.net プロセスを実行しているユーザーがこのパスにアクセスする権限を持っているかどうかを確認してください。

このコードで発生している例外をログに記録して、アクセス違反が発生しているかどうかを確認できます。

次のコードは、アクセスできるかどうかを確認するのに役立ちます

 UserFileAccessRights rights = new UserFileAccessRights(sourcePath);
 if (rights.canWrite() && rights.canRead()) {
     lblLogMsg.Text = "R/W access";
 } else {
     if (rights.canWrite()) {
        lblLogMsg.Text = "Only Write access";
     } else if (rights.canRead()) {
         lblLogMsg.Text = "Only Read access";
     } else {
         lblLogMsg.Text = rights.ToString();
     }
 }
于 2013-01-19T05:25:10.300 に答える
-1

プログラムがローカル システムではなくサーバーの D:\ パスを検索するため、機能しません。

于 2013-10-11T10:35:28.367 に答える