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 回答