多语言展示
当前在线:1186今日阅读:193今日分享:47

判断本地文件和网络文件是否存在

判断文件存在状态应用比较广泛,包括判断本地文件和网络文件是否存在,本质都是通过请求文件的返回状态来判断,判断文件之后再根据不同情况来分别处理,比如会员系统的头像,就需要来判断会员信息是否包含图片,有就显示,没有就要显示默认图片。
工具/原料

测试内容的程序文件

方法/步骤
1

判断本地文件是否存在代码://本地文件string path = 'C:/Users/lenovo/Desktop/temp/1.jpg';if (System.IO.File.Exists(path)){ Console.WriteLine('本地文件确实存在!'); }else{ Console.WriteLine('本地文件不存在!'); } 主要是通过System.IO.FIle对象的Exists方法来进行判断。

2

判断网络文件是否存在的逻辑思路,就是根据网络地址创建请求对象,然后获取请求对象的响应状态,判断响应代码是否是200,最后成功的就说明图片存在,反之就没有。不同于本地文件直接通过文件流来判断的方式。

3

判断本地文件是否存在方式一代码://方式一string url='';//网络文件地址if (JudgeFileExist01(url) == 1){ Console.WriteLine('01网络文件确实存在!'); }else{ Console.WriteLine('01网络文件不存在!'); }//调用方法:private static int JudgeFileExist01(string url){//判断网络地址存在if (url.Length > 1){//创建根据网络地址的请求对象System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(new Uri(url));System.Net.ServicePointManager.Expect100Continue = false;try{//响应对象的成功状态((System.Net.HttpWebResponse)httpWebRequest.GetResponse()).Close();}catch (System.Net.WebException exception){if (exception.Status != System.Net.WebExceptionStatus.ProtocolError){ return 1; }if (exception.Message.IndexOf('500') > 0){ return 500; }if (exception.Message.IndexOf('401') > 0){ return 401; }if (exception.Message.IndexOf('404') > 0){ return 404; }}}return 1;}

4

判断本地文件是否存在方式二代码://方式二string url='';//网络文件地址if (JudgeFileExist02(url)){ Console.WriteLine('02网络文件确实存在!'); }else{ Console.WriteLine('02网络文件不存在!'); }//调用方法:private static bool JudgeFileExist02(string url){bool res = false;//响应对象System.Net.WebResponse webResponse = null;try{//创建根据网络地址的请求对象System.Net.WebRequest webRequest = System.Net.WebRequest.Create(url);//获取请求对象的响应状态webResponse = webRequest.GetResponse();//判断响应对象内容res = webResponse == null ? false : true;}catch (Exception ex){ res = false; }finally{if (webResponse != null){ webResponse.Close(); }}return res;}

5

判断本地文件是否存在方式三代码://方式三string url='';//网络文件地址if (JudgeFileExist03(url)){ Console.WriteLine('03网络文件确实存在!'); }else{ Console.WriteLine('03网络文件不存在!'); }//调用方法:private static bool JudgeFileExist03(string url){try{//创建根据网络地址的请求对象System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.CreateDefault(new Uri(url));httpWebRequest.Method = 'HEAD';httpWebRequest.Timeout = 1000;//返回响应状态是否是成功比较的布尔值return (((System.Net.HttpWebResponse)httpWebRequest.GetResponse()).StatusCode == System.Net.HttpStatusCode.OK);}catch{return false;}}

注意事项

应该考虑文件判断的情况,尤其是网络文件的判断方式。

推荐信息