3

我有一个客户端应用程序,它根据静态路径定位文件并相应地处理它:

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);
}

任何建议将不胜感激。

4

3 回答 3

3

看起来你实际上并没有file在你的 foreach 循环中做任何事情,你只是在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);

于 2013-04-30T08:32:55.973 回答
2

试试这个:

foreach (string file in Directory.GetFiles(path, "*.xml"))
{
byte[] byteArray = System.IO.File.ReadAllBytes(file);
channel.UploadTransaction(file, 27, byteArray);                        
}
于 2013-04-30T08:32:21.837 回答
2

循环上的一个小错误,您需要调用ReadAllByteswithfile而不是path

byte[] byteArray = System.IO.File.ReadAllBytes(file);
于 2013-04-30T08:32:45.753 回答