详解C#对路径...的访问被拒绝解决过程
用C#想写一个直接将数据库查询得到的datatable,直接导出为csv格式的文件,拷贝到导出的操作类后,一直catch到的错误提示是对路径的泛微被拒绝,一直排查原因,发现原来:FileStream(path,FileMode.OpenOrCreate,FileAccess.ReadWrite),path处所读取的字符串必须包含文件名称以及格式。现在贴完整代码,以供帮助到像我一样的初学者。
privatevoidbutton1_Click(objectsender,EventArgse) { System.IO.StreamReaderst; //由于我的查询语句较长,采用了读取txt文本的方式后做查询操作。 st=newSystem.IO.StreamReader(Application.StartupPath+"\\SQL2.txt",System.Text.Encoding.Default); stringstingsql=st.ReadToEnd(); st.Close(); textBox1.Text=stingsql; DataTabledt=newDataTable(); dt=bc.QueryCommand(stingsql); stringfilepath=@"F:\病案导出备份\患者统计表.csv";//此处必须为路径加文件名称,否则 ImportToCSV(dt,filepath); } publicstaticvoidImportToCSV(DataTabledt,stringfilepath) { FileStreamfs=null; StreamWritersw=null; try { fs=newFileStream(filepath,FileMode.Create,FileAccess.Write); sw=newStreamWriter(fs,Encoding.Default); stringhead=""; //拼接列头 for(intcNum=0;cNum
示例2
问题代码:
privateboolGetChannelInfo() { comCheckWindow.LoadCheckResult("准备加载项目通道信息",Color.FromName("Green")); XmlDocumentproFile=newXmlDocument();//读取项目配置文件 proFile.Load(proFilePath); XmlNodeListchannelList=proFile.SelectSingleNode("Project").ChildNodes; if(channelList.Count==0)returnfalse; ...... returntrue; }
在“proFile.Load(proFilePath)”语句处发生错误,提示对路径…(proFilePath的值)的访问被拒绝。
尝试过将目标文件重新选择路径(从C盘转移到D盘),或提升程序运行权限(在以管理员身份运行VisualStudio的情况下打开项目文件),均无效。
最后检查程序时发现:路径proFilePath的值不正确,运行“proFile.Load(proFilePath)”要求路径proFilePath指向一个确定的XML文件,但此处路径的值为该XML文件所在目录的路径,由于Load函数的参数指向对象类型不匹配,从而导致出错。
到此这篇关于详解C#对路径...的访问被拒绝解决过程的文章就介绍到这了,更多相关C#路径访问被拒绝内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!