我有要刪除的文件。連接可以來自文件共享,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(@"\\tabletijam\FileServer\upload.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
和File
成功刪除。 WebRequestMethods.Http
不包含DeleteFile。
所以我的問題是,如何從這個URI中刪除文件?
http://tabletijam/FileServer/upload.bin
你不能直接請求這樣的FileInfo的。您需要對放置文件的位置進行實際的請求。無論是與Web或FTP請求。然後你可以得到fileinfo並刪除文件。 – Rob 2011-03-17 09:42:54