搭建IIS文件服務(wù)器
一螟炫、當(dāng)然,開(kāi)始肯定沒(méi)有IIS艺晴,那該怎么辦不恭?需要一個(gè)軟件環(huán)境進(jìn)行搭建,具體方法如下:
不啰嗦了 問(wèn)度娘 O(∩_∩)O哈哈哈~
安裝完成之后财饥,跟著走(一Windows server 2008 為例)
使用C#WebClient訪問(wèn)IIS文件服務(wù)器
在使用WebClient類之前,必須先引用System.Net命名空間折晦,文件下載钥星、上傳與刪除的都是使用異步編程,也可以使用同步編程满着,
這里以異步編程為例:
/* 需要注意的是 路徑一定要寫(xiě)全 尤其是服務(wù)器端的路徑 (帶文件名后綴的谦炒,一開(kāi)始沒(méi)寫(xiě)坑死了)*/
1)文件下載:
static void Main(string[] args)
{
//定義_webClient對(duì)象
WebClient _webClient = new WebClient();
//使用默認(rèn)的憑據(jù)——讀取的時(shí)候,只需默認(rèn)憑據(jù)就可以
_webClient.Credentials = CredentialCache.DefaultCredentials;
//下載的鏈接地址(文件服務(wù)器)
Uri _uri = new Uri(@"http://192.168.1.103/test.doc");
//注冊(cè)下載進(jìn)度事件通知
_webClient.DownloadProgressChanged += _webClient_DownloadProgressChanged;
//注冊(cè)下載完成事件通知
_webClient.DownloadFileCompleted += _webClient_DownloadFileCompleted;
//異步下載到D盤
_webClient.DownloadFileAsync(_uri, @"D:\test.doc");
Console.ReadKey();
}
//下載完成事件處理程序
private static void _webClient_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
Console.WriteLine("Download Completed...");
}
//下載進(jìn)度事件處理程序
private static void _webClient_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
Console.WriteLine($"{e.ProgressPercentage}:{e.BytesReceived}/{e.TotalBytesToReceive}");
}
2)文件上傳:
static void Main(string[] args)
{
//定義_webClient對(duì)象
WebClient _webClient = new WebClient();
//使用Windows登錄方式
_webClient.Credentials = new NetworkCredential("test", "123");
//上傳的鏈接地址(文件服務(wù)器)
Uri _uri = new Uri(@"http://192.168.1.103/test.doc");
//注冊(cè)上傳進(jìn)度事件通知
_webClient.UploadProgressChanged += _webClient_UploadProgressChanged;
//注冊(cè)上傳完成事件通知
_webClient.UploadFileCompleted += _webClient_UploadFileCompleted;
//異步從D盤上傳文件到服務(wù)器
_webClient.UploadFileAsync(_uri,"PUT", @"D:\test.doc");
Console.ReadKey();
}
//下載完成事件處理程序
private static void _webClient_UploadFileCompleted(object sender, UploadFileCompletedEventArgs e)
{
Console.WriteLine("Upload Completed...");
}
//下載進(jìn)度事件處理程序
private static void _webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
Console.WriteLine($"{e.ProgressPercentage}:{e.BytesSent}/{e.TotalBytesToSend}");
}
3)文件刪除:
static void Main(string[] args)
{
//定義_webClient對(duì)象
WebClient _webClient = new WebClient();
//使用Windows登錄方式
_webClient.Credentials = new NetworkCredential("test", "123");
//待刪除的文件鏈接地址(文件服務(wù)器)
Uri _uri = new Uri(@"http://192.168.1.103/test.doc");
//注冊(cè)刪除完成時(shí)的事件(模擬刪除)
_webClient.UploadDataCompleted += _webClient_UploadDataCompleted;
//異步從文件(模擬)刪除文件
_webClient.UploadDataAsync(_uri, "DELETE", new byte[0]);
Console.ReadKey();
}
//刪除完成事件處理程序
private static void _webClient_UploadDataCompleted(object sender, UploadDataCompletedEventArgs e)
{
Console.WriteLine("Deleted...");
}