2010-10-22 114 views
0

我有一個文本框和一個form.i中的按鈕,我希望將文件保存到在文本框中輸入的網絡路徑中,同時單擊該按鈕。我試了下面給出的代碼。訪問被拒絕錯誤 - c#

private void button1_Click(object sender, EventArgs e) 
    { 
     string destinationPath = txtFilePath.Text.ToString(); 
     string sourceFile = @"c:\1.txt"; 
     string fileName = Path.GetFileName(sourceFile); 
     System.IO.File.Copy(sourceFile, Path.Combine(destinationPath, fileName)); 

    } 

它工作正常,如果目的地提供了更改內容的權限。如果目的地是'只讀',那麼它會給出錯誤。如果輸入是\ 192.168.0.24 \ aqm,則顯示如下所示的錯誤(路徑沒有寫入權限)

訪問路徑'\ 192.168.0.24 \ aqm \ 1.txt'被拒絕。

有無論如何解決這個問題。我的意思是,如果目的地是隻讀的,那麼它會提示該系統的用戶名和密碼,如果用戶名密碼輸入正確,然後將文件保存到該目錄。用戶知道網絡中所有計算機的用戶名和密碼。出於某種安全原因,不能向每個系統帳戶授予寫入權限。這就是爲什麼我正在尋找我建議上面的方法

或任何其他方式? 希望有人幫我

回答

2

我可以建議你以另一種方式。如果可能的話,建立一個Windows服務。設置服務登錄到帳戶哪個ahve管理員權限。使用Windows服務進行復制過程。我在我的一個項目中使用了這個算法。如果服務使用管理員憑據登錄,它會很好用。計算機具有帶管理員證書的Windows服務可以輕鬆地複製任何網絡計算機上的文件。例如,將一個系統定時器放入您的服務中。讓服務每5分鐘檢查一次路徑。如果給定路徑中存在文件,則通過發送路徑將文件複製到網絡機器。

+0

即使Windows服務不應該以管理員身份運行,它應該作爲僅授予**的特定域用戶運行**所需的權限。 – cjk 2010-10-22 06:56:07

+0

我的意思是帳戶擁有管理權限。 – 2010-10-22 06:57:09

0

我認爲如果目標是隻讀的,除了通知用戶文件無法保存,因爲dest是隻讀的,您可以做的不多。