0

データベースにファイルを保存しています。データベースに名前が保存されていないため、バイト配列の最初の 4 バイトをチェックして、ファイルが pdf か jpg かを調べています。現在、一度に 1 つのファイルしかダウンロードできません。DataTable にあるすべてのファイルを zip 形式でダウンロードしたい.. (ファイルの元の名前がないため、比較後に取得する拡張子を付けてランダムな名前を付けたいと思っています)

DataRow objRow;
objAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(objAdapter);
objAdapter.Fill(objTable);
objRow = objTable.Rows[1];
byte[] objData;
objData = (byte[])objRow["img"];
// Stream stream = new MemoryStream(objData);
var firstNBytes = objData.Take(4);
Byte[] threeBytes = new Byte[] { objData[0], objData[1], objData[2], objData[3] };
var bytesToCompare = Encoding.Unicode.GetBytes("0x25");
bool equal = firstNBytes.SequenceEqual(bytesToCompare);
string hex = BitConverter.ToString(threeBytes);
hex.Replace("-", "");

if (objSfd.ShowDialog() != DialogResult.Cancel)
{
string strFileToSave = objSfd.FileName;

//string strFileToSave = "abc";

if (hex == "25-50-44-46")
{
    strFileToSave += ".pdf";
}
else
{
    strFileToSave += ".jpg";
}

FileStream objFileStream = new FileStream(strFileToSave, FileMode.Create, FileAccess.Write);
objFileStream.Write(objData, 0, objData.Length);
objFileStream.Close();

私を助けてください。

4

1 に答える 1