c# – 删除远程文件?
发布时间:2020-12-15 06:17:50 所属栏目:百科 来源:网络整理
导读:我有我要删除的文件.连接可以来自文件共享,http和ftp. 要删除的文件示例: //mytest//delete//filename.binftp://mytest/delete/filename.binhttp://mytest/delete/filename.bin 这是我做的: Uri target = new Uri(@"ftp://mytest/delete/filename.bin");Fi
我有我要删除的文件.连接可以来自文件共享,http和ftp.
要删除的文件示例: //mytest//delete//filename.bin ftp://mytest/delete/filename.bin http://mytest/delete/filename.bin 这是我做的: Uri target = new Uri(@"ftp://mytest/delete/filename.bin"); FileInfo fi = new FileInfo(target.AbsoluteUri); fi.Delete(); 我得到的错误是:
是否有一个代码可以删除所有这些文件类型? 我已经为此任务创建了一个简单的代码(基于线程响应). Uri target = new Uri(@"ftp://tabletijam/FileServer/upload.bin"); Uri target = new Uri(@"http://tabletijam/FileServer/upload.bin"); Uri target = new Uri(@"tabletijamFileServerupload.bin"); 这是代码: bool DeleteFileOnServer(Uri serverUri) { if (serverUri.Scheme == Uri.UriSchemeFtp) { FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); request.Method = WebRequestMethods.Ftp.DeleteFile; FtpWebResponse response = (FtpWebResponse)request.GetResponse(); lblStatus.Content = response.StatusDescription; response.Close(); return true; } else if (serverUri.Scheme == Uri.UriSchemeFile) { System.IO.File.Delete(serverUri.LocalPath); return true; } else if (serverUri.Scheme == Uri.UriSchemeHttp || serverUri.Scheme == Uri.UriSchemeHttps) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serverUri); request.Method = WebRequestMethods.Http.DeleteFile; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); lblStatus.Content = response.StatusDescription; response.Close(); return true; } else { lblStatus.Content = "Unknown uri scheme."; return false; } } Ftp和文件已成功删除. WebRequestMethods.Http不包含DeleteFile. 所以我的问题是,如何从这个URI删除文件? http://tabletijam/FileServer/upload.bin 解决方法
因为FileInfo仅适用于本地文件.对于每个连接,您将需要一个特殊的实现.
对于FTP:(example from MSDN) public static bool DeleteFileOnServer(Uri serverUri) { // The serverUri parameter should use the ftp:// scheme. // It contains the name of the server file that is to be deleted. // Example: ftp://contoso.com/someFile.txt. // if (serverUri.Scheme != Uri.UriSchemeFtp) { return false; } // Get the object used to communicate with the server. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); request.Method = WebRequestMethods.Ftp.DeleteFile; FtpWebResponse response = (FtpWebResponse) request.GetResponse(); Console.WriteLine("Delete status: {0}",response.StatusDescription); response.Close(); return true; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |