2017-03-14 6 views
-3

Je suis en train d'écrire du texte à déposer sur le serveur de l'application de bureau winformécrire du texte dans le fichier texte sur le serveur

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

Pour utiliser le chemin:

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

aussi j'ai essayé de cette façon:

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

pour écrire du texte dans le document texte:

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

On dirait que je fais quelque chose de mal,

nom Server «n'existe pas dans le contexte actuel ».

Vous ne savez pas comment utiliser Server.MapPath.

est en Références comme System.Web pas System.Web.dll, pas sûr, mais il doit être la même, et en utilisant comme System.Web;

Aussi je me sers System.Net; donc je pourrais peut-être faire avec WebClient.

+0

Peu de sites Web contemporains vous permettent d'accéder directement en écriture aux fichiers sur le serveur Web. Beaucoup mieux de fournir une API pour effectuer le côté du serveur de travail. Envisager de regarder dans REST? – MickyD

+0

@MickyD Bonjour, je veux l'écrire seulement sur mon serveur – nikorio

+0

Etes-vous en train de dire que l'application WinForms ** et ** le serveur web sont tous les deux le même ordinateur_ ?? – MickyD

Répondre

1

Pourquoi utilisez-vous Server.MapPath dans un winform desktop application.

Télécharger le fichier en utilisant quelque chose comme ceci:

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

puis l'écrire à votre local après la modification (si nécessaire) à l'aide

File.WriteAllBytes(savefilePath, filearray); 

Et puis télécharger en utilisant webClient.UploadData(address, filearray).

+0

@MickyD voir ma vérification. J'ai mentionné OP devrait télécharger le fichier. – Sadique

+0

Merci pour l'édition.:) – MickyD

+1

@MickyD - merci de souligner. – Sadique

0

Vous essayez de modifier le fichier sur le serveur que le serveur ne permet pas car cela pourrait être mal utilisé et endommager le serveur. Vous pouvez mettre à jour le fichier via le site Web hébergeant ce fichier texte.

Le chemin d'accès Server.Map doit être utilisé sur le site Web où vous souhaitez modifier le fichier. Si le fichier est le site Web du formulaire Web asp.net, vous pouvez créer une page ASPX qui modifiera le fichier pour vous. Si c'est MVC alors vous aurez besoin d'une méthode Action dans Controller pour modifier le fichier pour vous.

Si vous voulez une copie modifiée, vous pouvez la télécharger et la sauvegarder localement comme l'a suggéré Sadiq. Vous pouvez également télécharger le fichier à nouveau, votre serveur doit le permettre.