C# 检查服务器上是否存在要读取和写入的文件

C# 检查服务器上是否存在要读取和写入的文件,c#,winforms,server,system.net,system.web,C#,Winforms,Server,System.net,System.web,我正在尝试使用System.Web从winform桌面应用程序读取和写入位于服务器上的文本文档。首先需要检查文件是否存在。不知道为什么,但System.Web不起作用。它被添加为System.Web作为参考 string siteDir = "http://www.site.info/doc.txt"; if (File.Exists(Server.MapPath(siteDir))); 与System.Web.HttpContext相同 System.Web.HttpContext.Cur

我正在尝试使用
System.Web
从winform桌面应用程序读取和写入位于服务器上的文本文档。首先需要检查文件是否存在。不知道为什么,但System.Web不起作用。它被添加为System.Web作为参考

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

if (File.Exists(Server.MapPath(siteDir)));
System.Web.HttpContext相同

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

一种简单的方法是使用
WebClient.DownloadFile()
尝试从您正在使用的url下载文件。如果引发WebException并且HTTP错误为404文件未找到,则该文件在服务器上不存在(或者您无权访问该文件)

有关如何检测404错误的信息,请参阅


不幸的是,没有
WebClient
方法可以简单地检查服务器上是否存在文件。

尝试
System.Web.Hosting.HostingEnvironment.MapPath(siteDir)这是桌面应用程序还是web应用程序?您已经在其中放置了一个winforms标记,这表明这是一个桌面应用程序,您需要引用assembly
System.Web.dll
@StanleyS Hello。不,相同的结果,我使用System.Web;也许我需要一些参考来使用它?解释“不起作用”。您是否遇到编译错误?例外?代码运行但给出了不同的结果?您好,谢谢,所以我这样做了httpwebresp=ex.Response作为HttpWebResponse;如果(resp.StatusCode==HttpStatusCode.NotFound){//404}
use System.IO.File.Exists() 

if(System.IO.File.Exists([path of file]))
{
  // do something
}