2

C# Windows フォーム アプリケーションを使用してドキュメント ファイル (ワード、PDF、テキスト) を SQL サーバー データベースに挿入しています。以下のコードを使用してファイルをバイナリに変換し、病棟後にこのファイルをデータベースにアップロードします。

    FileInfo fileinfo = new FileInfo(file);
    string fileName = System.IO.Path.GetFileNameWithoutExtension(file);
    string extension = System.IO.Path.GetExtension(file);
    long byteSize = fileinfo.Length;
    FileStream myFileStreams = new FileStream(file, FileMode.Open, FileAccess.Read);
    BinaryReader br = new BinaryReader(myFileStreams);
    byte[] fileStream = br.ReadBytes((int)byteSize);

ファイルは正常に保存されますが、データベースから取得すると、ファイルは読み取り可能な形式ではありません。データベースから取得してローカルディスクに保存するために使用した以下のコード:

    //the file is fetch by its id and is saved in DataTable dt1 on its row[0][1]
    byte[] cv = (byte[])dt1.Rows[0][1];
    string cvName = dt1.Rows[0][0].ToString();
    string ext = dt1.Rows[0][2].ToString();

    //saved in bin
    string pathOfCv = "new\\" + cvName + ext;
    File.WriteAllBytes(pathOfCv, cv);
    File.Create(pathOfCv);

取得したファイルには、保存したのと同じ形式で読みたい読み取り不能なテキストが含まれています。ファイルの変換に問題があると思います。ファイルにバイト配列を直接書き込むことができない可能性があります。

この問題を解決するにはどうすればよいか、いくつかのコード例を教えてください。

4

1 に答える 1