1

アプリで問題が発生し、ディスクからPDFを読み取り、後で別の場所に書き戻す必要があります。

送信されたファイルは有効なPDFではなくなりました。

非常に単純化された形式で、私はそれを使用して読み書きを試みました

var bytes = File.ReadAllBytes(@"c:\myfile.pdf");
File.WriteAllBytes(@"c:\output.pdf", bytes);

var input = new StreamReader(@"c:\myfile.pdf").ReadToEnd();
File.WriteAllText("c:\output.pdf", input);

...そしてさまざまなエンコーディングが指定されている上記の約100の順列。出力ファイルはどれも有効なPDFではありませんでした。

誰かが手を貸してくれませんか?どうもありがとう!!

4

2 に答える 2

3

C#/。Net 4.0の場合:

using (var i = new FileStream(@"input.pdf", FileMode.Open, FileAccess.Read))
   using (var o = File.Create(@"output.pdf"))
      i.CopyTo(o);

あなたが最初のものを持っていることを主張するbyte[]ならば:

using (var i = new FileStream(@"input.pdf", FileMode.Open, FileAccess.Read))
   using (var ms = new MemoryStream())
   {
        i.CopyTo(ms);
        byte[] rawdata = ms.GetBuffer();

        using (var o = File.Create(@"output.pdf"))
           ms.CopyTo(o);
   }

メモリストリームはms.Seek(0, SeekOrigin.Origin)、2番目のCopyToの前にそのようなものである必要がある場合があります。調べてみるか、試してみてください

于 2012-12-07T21:21:58.907 に答える
3

File.WriteAllTextファイルを書き出すために 使用しています。

試してみてくださいFile.WriteAllBytes

于 2012-12-07T21:22:26.050 に答える