0

既存のファイルにバイト配列を追加したいと思います。ファイルの最後にある必要があります私はすでにファイルの先頭に書き込むことができました。(stackoverflow に感謝します ;))。

そのためのコード:

public bool ByteArrayToFile(string _FileName, byte[] _ByteArray)
{
   try
   {
      // Open file for reading
      System.IO.FileStream _FileStream = 
         new System.IO.FileStream(_FileName, System.IO.FileMode.Create,
                                  System.IO.FileAccess.Write);
  // Writes a block of bytes to this stream using data from
  // a byte array.
  _FileStream.Write(_ByteArray, 0, _ByteArray.Length);

  // close file stream
  _FileStream.Close();

  return true;
   }
catch (Exception _Exception)
{
  // Error
  Console.WriteLine("Exception caught in process: {0}",
                    _Exception.ToString());
}

// error occured, return false
return false;

}

ここから入手しました:

リンク

しかし、ファイルの最後に必要です

前もって感謝します。

解決策を見つけました:

FileStream writeStream;
        try
        {
            writeStream = new FileStream(_FileName, FileMode.Append,FileAccess.Write);
            BinaryWriter writeBinay = new BinaryWriter(writeStream);
            writeBinay.Write(_ByteArray);
            writeBinay.Close();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
        }
4

1 に答える 1

4

を使用する代わりにSystem.IO.FileMode.Create、使用System.IO.FileMode.Appendしてください - それはあなたが必要とすることを正確に行います。

MSDN のFileMode列挙から:

追加: ファイルが存在する場合はファイルを開き、ファイルの最後までシークするか、新しいファイルを作成します。これにはFileIOPermissionAccess.Append許可が必要です。FileMode.Appendと組み合わせてのみ使用できますFileAccess.Write。ファイルの末尾より前の位置をシークしようとするとIOException例外がスローされ、読み取りの試みは失敗してNotSupportedException例外がスローされます。

于 2013-03-30T19:10:19.793 に答える