2017-03-14 74 views
-3

我想寫的文字從WinForm的桌面應用程序在服務器上以文件的文本文件文本寫入服務器上

string path = "http://www.site.info/doc.txt"; 

要使用路徑:

System.Web.HttpContext.Current.Server.MapPath(path); 

還我試着這樣說:

System.Web.Hosting.HostingEnvironment.MapPath(path); 

寫文本到文本文件:

using (StreamWriter _testData = new StreamWriter(Server.MapPath("~/doc.txt"), true)) 
{ 
    _testData.WriteLine("TEXT"); 
} 

好像我做錯了什麼,

Server「並不在當前的背景下存在」。

不知道如何使用Server.MapPath

它是在參考System.WebSystem.Web.dll,不知道,但它必須是相同的,並且在使用作爲System.Web;

而且我使用System.Net;所以也許我可以WebClient做到這一點。

+0

並不是很多當代網站允許您直接寫訪問Web服務器上的文件。更好地提供一個API來執行作業服務器端。考慮尋找REST? – MickyD

+0

@MickyD你好,我想只寫在我的服務器上 – nikorio

+0

你是說WinForms應用**和**網絡服務器都是_same computer_? – MickyD

回答

1

爲什麼在winform desktop application中使用Server.MapPath

下載使用像這樣的文件:使用

File.WriteAllBytes(savefilePath, filearray); 

然後

WebClient webClient = new WebClient(); 
var filearray = webClient.DownloadData(path); 

,然後將其寫入到本地修改後(如果需要)上傳使用webClient.UploadData(address, filearray)

+0

@MickyD看到我的編輯。我提到OP應該上傳文件。 – Sadique

+0

感謝您的編輯。:) – MickyD

+1

@MickyD - 謝謝指出。 – Sadique

0

您正試圖修改服務器上不允許的服務器上的文件,因爲這可能會被誤用並損害服務器。您可以通過託管此文本文件的網站更新文件。

Server.Map路徑應該在您想要修改文件的網站中使用。如果該文件是asp.net web表單網站,那麼你可以創建一個aspx頁面來爲你修改文件。如果是MVC,那麼你需要在Controller中有一個Action方法來爲你修改文件。

如果你想要你自己修改後的副本,那麼你可以下載它並將其保存在本地的Winform應用程序中,如Sadiq所建議的那樣。您也可以通過再次上傳文件,您的服務器端必須允許這一點。