2013-01-19 35 views
0

我需要將C:/ images文件夾中的圖像複製到我在服務器中運行的Web應用程序文件夾中。我使用了以下在本地應用程序中運行良好的代碼但在服務器在asp.net中將本地機器的圖像複製到服務器C#

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); 

     } 

如何複製

+0

它是如何工作的?你有任何錯誤?還是該副本什麼都不做? –

回答

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(); 
    } 
} 
+0

肯定nunespascal,我檢查並通知,我想知道是否有任何其他方法 – user1551183

+0

如果您沒有訪問權限,最簡單的解決方案是將圖像保存在一個文件夾,如果您的Web目錄。我猜測這不是一種選擇,否則你不會試圖首先通過代碼來移動圖像。 – nunespascal

-1

它不起作用,因爲程序搜索d你檢查是否代碼:服務器在本地系統\路徑不是。

相關問題