在目录中找不到文件
本文关键字:找不到 文件 | 更新日期: 2023-09-27 18:16:26
不知道我做错了什么。
总是在最后一行找不到文件。string XMLPackagesDir = "C:''Users''ro''Desktop''Cl''Cle''Xm''";
DirectoryInfo DirInfo = new DirectoryInfo(XMLPackagesDir);
foreach (FileInfo fi in DirInfo.GetFiles("*.*", SearchOption.AllDirectories))
{
XmlSerializer serializer = new XmlSerializer(typeof(Response));
Response i;
FileStream fs = null;
fs = new FileStream("XMLPackagesDir" + fi.Name, FileMode.Open);
您正在使用字符串字面值而不是变量。使用
fs = new FileStream(XMLPackagesDir + fi.Name, FileMode.Open);
不是fs = new FileStream("XMLPackagesDir" + fi.Name, FileMode.Open);
或者更好的
fs = new FileStream(Path.Combine(XMLPackagesDir, fi.Name), FileMode.Open);
所以你不用担心后面的斜杠
您有一个对象string XMLPackagesDir
。但是您在最后一行使用了字符串:
fs = new FileStream("XMLPackagesDir" + fi.Name, FileMode.Open);
使用您的对象,并且根据最佳实践,使用Path
库:
fs = new FileStream(Path.Combine(XMLPackagesDir, fi.Name), FileMode.Open);
其他答案在您的错别字处给出了解决方案。但我想说的是FileInfo类有一个名为FullName的属性,顾名思义,它包含了文件的全名和文件夹名。
那么为什么需要这个字符串连接呢?
就是
fs = new FileStream(fi.FullName, FileMode.Open);
try with
public static void foo(String path) {
try {
DirectoryInfo DirInfo = new DirectoryInfo(path);
foreach (FileInfo fi in DirInfo.GetFiles("*.*", SearchOption.AllDirectories)){
XmlSerializer serializer = new XmlSerializer(typeof(Response));
Response i;
FileStream fs = null;
fs = new FileStream(fi.FullName, FileMode.Open);
}
} catch (Exception ex) {
Log.Error(ex);
}
}