循环一个目录以处理多个XML文件
本文关键字:处理 XML 文件 一个 循环 | 更新日期: 2023-09-27 18:11:33
我有一个客户端应用程序,它可以根据静态路径定位文件并相应地进行处理:
string filepath = @"C:'Users'NChamber'Desktop'package'1002423A_attachments.xml";
byte[] byteArray = System.IO.File.ReadAllBytes(filepath);
channel.UploadTransaction(filepath, 27, byteArray);
这对于单个文件更新来说很好,但我需要的是扫描整个目录中以"*.xml"结尾的所有文件,并处理它们。
到目前为止,我尝试过这种方法,但收效甚微:
string path = @"C:'Users'NChamber'Desktop'package'";
foreach (string file in Directory.EnumerateFiles(path, "*.xml"))
{
byte[] byteArray = System.IO.File.ReadAllBytes(path);
channel.UploadTransaction(path, 27, byteArray);
}
任何建议都将不胜感激。
看起来您实际上并没有在foreach循环中使用file
做任何事情,只是在每次迭代中传递path
。
foreach (string file in Directory.EnumerateFiles(path, "*.xml"))
{
byte[] byteArray = System.IO.File.ReadAllBytes(path);
channel.UploadTransaction(file, 27, byteArray);
}
我怀疑你的意思是:System.IO.File.ReadAllBytes(file);
例如:
foreach (string file in Directory.EnumerateFiles(path, "*.xml"))
{
byte[] byteArray = System.IO.File.ReadAllBytes(file);
channel.UploadTransaction(file, 27, byteArray);
}
然后:channel.UploadTransaction(file, 27, byteArray);
试试这个:
foreach (string file in Directory.GetFiles(path, "*.xml"))
{
byte[] byteArray = System.IO.File.ReadAllBytes(file);
channel.UploadTransaction(file, 27, byteArray);
}
循环中的一个小错误,需要用file
而不是path
:调用ReadAllBytes
byte[] byteArray = System.IO.File.ReadAllBytes(file);