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

fileforeach ループ内で実際に何もしていないように見え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

ReadAllBytesループの小さなエラーです。次のfile代わりに呼び出す必要がありますpath

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