当前位置: 首页 > 编程语言 > C#

在C#中验证文件是否存在分享

时间:2023-04-10 16:17:30 C#

C#中验证文件是否存在我正在开发一个应用程序。该应用程序应该从用户那里获取简历,因此我需要一个代码来验证该文件是否存在。我正在使用ASP.NET/C#。您可以使用System.IO命名空间中File类的Exists方法确定指定文件是否存在:boolSystem.IO.File.Exists(stringpath)您可以在MSDN上的此处找到文档。示例:使用系统;使用System.IO;类测试{publicstaticvoidMain(){stringresumeFile=@"c:ResumesArchive923823.txt";stringnewFile=@"c:ResumesImportnewResume.txt";如果(File.Exists(resumeFile)){File.Copy(resumeFile,newFile);}else{Console.WriteLine("简历文件不存在。");}}}要测试文件是否存在于.NET中,您可以使用System.IO.File.Exists(String)if(File.Exists(Server.MapPath("~/Images/associates/"+Html.DisplayFor(modelItem=>item.AssociateImage)))){item.AssociateImage)">}else{Noimageavailable}我做这样的事情来检查图像是否存在,然后再显示它。简单的答案是你不能-你不会能够从ASP站点检查他们机器上的文件,因为这样做会给他们带来风险。你必须给他们一个文件上传控制——你可以用这个控制做多少。出于安全原因,javascript不能不要真的碰它。然后他们选择要上传的文件,你必须处理他们可能在服务器端发送的任何空文件。您可以使用:System.IO.File.Exists(@"c:temptest.txt");无法发表评论,但我只是想不同意/澄清erikkallen。您不应该只在您描述的情况下捕获异常。如果您知道该文件应该存在,但由于某些特殊情况它不存在,则可以尝试访问该文件并捕获发生的任何异常。但是,在这种情况下,您正在接收来自用户的输入并且没有理由相信该文件存在。在这里你应该总是使用File.Exists()。我知道这是陈词滥调,但您应该只对特殊事件使用异常,而不是像应用程序的正常流程那样。它很昂贵并且使代码更难阅读/遵循。这些答案都假定您正在检查的文件位于服务器端。遗憾的是,没有确保文件存在于客户端的万无一失的方法(例如,如果您正在上传简历)。当然,你可以用Javascript来做,但你仍然不能100%确定服务器端。在我看来,处理这个问题的最好方法是假设用户实际上会选择合适的文件上传,然后做任何你需要做的工作以确保上传的文件是你所期望的(提示-假设用户尝试用他/她的输入上传它会以您编写asp.net的所有可能方式毒化您的系统-您要上传文件吗?如果是这样,您可以使用HTML而不是使用File.Exists(),您最好尝试一下使用此文件并捕获抛出的任何异常。该文件可能由于不存在以外的原因而无法打开。试试这个:stringfileName="6d294041-34d1-4c66-a04c-261a6d9aee17.jpeg";stringdeletePath="/images/uploads/";if(!string.IsNullOrEmpty(fileName)){//将文件名追加到之前的图像中.deletePath+=fileName;if(File.Exists(HttpContext.Current.Server.MapPath(deletePath))){//删除上一张图片File.Delete(HttpContext.Current.Server.MapPath(deletePath));这可能对你有帮助。尝试{con.Open();如果((fileUpload1.PostedFile!=null)&&(fileUpload1.PostedFile.ContentLength>0)){filename=System.IO.Path.GetFileName(fileUpload1.PostedFile.FileName);ext=System.IO.Path.GetExtension(文件名).ToLower();stringstr=@"/Resumes/"+文件名;saveloc=(Server.MapPath(".")+str);string[]exts={".doc",".docx",".pdf",".rtf"};for(inti=0;i我已经用vb编写了这段代码,它可以很好地检查文件是否存在以进行文件上传控制。试试吧针对于VB代码============IfFileUpload1.HasFile=TrueThenDimFileExtensionAsString=System.IO.Path.GetExtension(FileUpload1.FileName)IfFileExtension.ToLower".jpg"ThenlblMessage.ForeColor=System.Drawing.Color.RedlblMessage.Text="Pleaseselect.jpgimagefiletoupload"ElseDimFileSizeAsInteger=FileUpload1.PostedFile.ContentLengthIfFileSize>1048576ThenlblMessage.ForeColor=System.Drawing.Color.RedlblMessage.Text=“超过文件大小(1MB)”ElseDimFileNameAsString=System.IO.Path.GetFileName(FileUpload1.FileName)DimServerFileNameAsString=Server.MapPath("~/Images/Folder1/"+FileName)如果System.IO.File.Exists(ServerFileName)=FalseThenFileUpload1.SaveAs(Server.MapPath("~/Images/Folder1/")+FileUpload1.FileName)lblMessage.ForeColor=System.Drawing.Color.GreenlblMessage.Text="文件:"+FileUpload1.FileName+"上传成功"ElselblMessage.ForeColor=System.Drawing.Color.RedlblMessage.Text="File:"+FileName.ToString()+"alreadyexsist"EndIfEndIfEndIfElselblMessage.ForeColor=System.Drawing.Color.RedlblMessage.Text="请选择要上传的文件"EndIfForC#CODE========================以上是C#学习教程:C#验证文件是否存在,全部内容分享,如果存在对大家有用并且需要了解更多C#学习教程,希望大家多多关注---if(FileUpload1.HasFile==true){stringFileExtension=System.IO.Path.GetExtension(FileUpload1.FileName);如果(FileExtension.ToLower!=".jpg"){lblMessage.ForeColor=System.Drawing.Color.Red;lblMessage.Text="请选择.jpg图片文件上传";}else{intFileSize=FileUpload1.PostedFile.ContentLength;如果(文件大小>1048576){lblMessage.ForeColor=System.Drawing.Color.Red;lblMessage.Text="超过文件大小(1MB)";}else{stringFileName=System.IO.Path.GetFileName(FileUpload1.FileName);字符串ServerFileName=Server.MapPath("~/Images/Folder1/"+FileName);如果(System.IO.File.Exists(ServerFileName)==false){FileUpload1.SaveAs(Server.MapPath("~/Images/Folder1/")+FileUpload1.FileName);lblMessage.ForeColor=System.Drawing.Color.Green;lblMessage.Text="文件:"+FileUpload1.FileName+"上传成功";}else{lblMessage.ForeColor=System.Drawing.Color.Red;lblMessage.Text="文件:"+FileName.ToString()+"已经存在";}}}}else{lblMessage.ForeColor=System.Drawing.红色;lblMessage.Text="请选择要上传的文件";}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: