- - PR -
ファイルの情報を格納したバイト配列からファイルを生成・出力する方法について情報提供をお願いします
1
投票結果総投票数:5 | |||
---|---|---|---|
Windows | 5票 | 100.00% | |
|
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-03 15:49
ファイルの情報(データ部だけではなくファイル名等を含んだヘッダ部も)
を格納したバイト配列から、 ローカルフォルダにファイルを出力する方法を探しています。 ご存知の方は、ご教授お願いします。 .NET の API を調べてみたのですが、 有効な情報を得ることはできませんでした。 具体的に、以下を実装しようと思っています。 @ BASE64 でエンコーディングした文字列を、 BASE64でデコードしてバイト配列を取得する (System.Convert.FromBase64String を利用するつもりです。) A @で取得したバイト配列を解析して、ヘッダ部とデータ部のバイト配列に分ける B Aで取得した(ファイル名等を含む)ヘッダ部のバイト配列の情報と、 データ部のバイト配列で、ファイルを出力する (テキストファイルのみとは限らないので、 FileStream.Write を利用するつもりです。) 尚、サンプルに使っているデータは以下です。 @ BASE64 でエンコーディングされたファイルの文字列 x0lGQRQAAAABAAAAAAAAACYAAAAYAAAAQgBBAFMARQA2ADQAZzCoMPMwszD8MMkwVTCMMF8w1TChMKQw6zAuAHQAeAB0AAAAgqCCoIKggqANCoKigqKCooKiDQqCpIKkgqSCpA0KgqaCpoKmgUI= A 実際のファイル ファイル名は、BASE64でエンコードされたファイル.txt データは以下↓ ああああ いいいい うううう えええ。 ↑以上 以上です。 参考になるページがあれば、 そのURLだけでも構わないのです。 よろしくお願いします。 | ||||||||
|
投稿日時: 2005-02-03 21:36
主題とは関係ないです。
某雑誌の宣伝ですか? | ||||||||
|
投稿日時: 2005-02-04 00:38
諸農です。
質問の内容にBase64文字を含めて投稿するのはあまり意味がないですよね。 投稿内容が読み辛かったので、次からは投稿内容に工夫をしていただけると ありがたいです。 以下に私の独断で考えたサンプルのコードをアップしておきます。 コード内容を分析して、適当にカスタマイズしてください。
_________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2005-02-04 00:45
諸農です。
気になる、気になる(^^; 技術系雑誌でしょうか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2005-02-04 13:54
>>Jubeiさん
ご回答ありがとうございます。 ご指摘頂いた点について、申し訳ありませんでした。 投稿する内容については以後気をつけていきます。 早速、提供して頂いたサンプルコードを解読&実行してみました。 確かにBASE64 → ファイルの作成 は上手くいきました。 ただ、私が使っていたデータのBASE64文字列だと、 やはり上手くいきません。 どうやらサンプルコードで作られたデータと違う点があるようです。 違う点は以下の2点です、 @ ファイル名の長さを示す情報が付加されていない → サンプルコードは、ファイル名の長さを格納したバイト配列を BASE64に変換して、先頭に付加しています。 実際に私が使用しているデータは、 先頭はおろか、どこにもファイル名の長さ入っていないようです。 (全部BASE64やASCIIで、デコードしてもそれらしき情報は見当たらず、、、) A ファイル名が JIS でエンコードされていない → サンプルコードは、以下の順でファイル名を取得しています。 BASE64でデコード でデコードした文字列をJISでデコード ただ私が使用しているデータは、この手順でデコードしても、 ファイル名が正しくデコードされません。 (拡張子の .txt の部分は正しくデコードされる。 多分、全角文字のデコードに失敗している様子。) 私が使用しているBASE64文字列は、 サンプルコードの手順で変換してないと考えられます。 ちなみに、私が使用しているデータについてですが、 InfoPathでファイルの添付を行い、 XML の要素値として表したデータです。 質問に質問を重ねて申し訳ありませんが、 InfoPathで、 ファイルのデータ→XML の要素値 の変換方法をご存知の方、 いらっしゃれば、ご教授願います。 (ソースコードレベルだとMSの開発者でないと分からないの思うので、 仕様レベルの情報提供で十分です。) 以上です。 長々と書いてしまいましたが、 よろしくお願いします。 | ||||||||
|
投稿日時: 2005-02-06 08:54
諸農です。
違うのは当たり前です。 私の独断仕様で文字列を作成しているのですから(^^;
そういった大切な部分は一番最初に書くべきです。 私が書いてアップしたコードが無意味な結果になったので、悲しいです。 こちらでInfoPathのSDKをダウンロードすることが出来ます。 Microsoft Office InfoPath 2003 Software Development Kit (SDK) 日本語ドキュメント 私はまだ途中までしか読めていないですが、こちらの書籍も参考になるのでは。 実践ワークショップInfoPath+XMLによるOffice2003連携プログラミング 参考になればいいですね。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ |
1