BinaryReader を使用して、OWA を使用して Exchange メールボックスから Excel 2007 ファイルを読み取っています。その後、ファイルは BinaryWriter を使用してディスクに書き込まれます。私の問題は、ライターが終了したときに 2 つのファイルが一致しないことです。さらに悪いことに、Excel 2007 は書き込んだファイルを開けません。
以前の Excel 2003 では、以下のソリューションで問題はありませんでした。ファイルが Excel 2003 形式のファイルである場合、Excel 2007 には問題がなく、ファイル形式が Excel 2007 (*.xlsx) である場合のみです。
バイナリリーダー:
using(System.IO.Stream stream = resource.GetInputStream(attachedFiles[k].Address))
{
using(System.IO.BinaryReader br = new System.IO.BinaryReader(stream))
{
attachment.Data = new byte[attachedFiles[k].Size];
int bufPosn=0, len=0;
while ((len = br.Read( attachment.Data, bufPosn, attachment.Data.Length-bufPosn )) > 0)
{
bufPosn += len;
}
br.Close();
}
}
BinaryWriter:
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter binWriter = new BinaryWriter(fs);
binWriter.Write( content, 0, content.Length );
binWriter.Close();
fs.Close();
提案を喜んで受け取りました。