問題タブ [compound-file]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - IStorage の複合ファイル実装はスレッドセーフですか?
C# からの IStorage の複合ファイル実装 (StgCreateDocfile) を使用しています。
自分で読み取りと書き込みを同期した場合、複数のスレッドから 1 つの IStorage / IStream インスタンスにアクセスしても安全ですか? または、ここで問題になる可能性のある COM の問題はありますか?
たとえば、EnumElements を安全に呼び出してストレージ内のすべてのストリームを取得し、同時に (別のスレッドから) 新しいストリームを作成して書き込むことはできますか?
私は実装用のストレス テストを既に作成しており、問題はありませんでしたが、100% 確信する必要があります。MSDN ドキュメントでこの情報を見つけられませんでした。
c++ - Windows複合ファイルに代わるオープンソースの代替ファイルはありますか?
いくつかのファイルをコンテナファイルに保存しようとしています。ファイルは後で変更できます。つまり、コンテナを拡大する必要がある場合があります。ユーザーは、このコンテナをファイルシステム内の単一のファイルとしてのみ表示する必要があります。アプリケーションはC++で記述され、Windowsで実行されますが、ファイルは他のプラットフォームにも移植可能である必要があります。
コンテナ形式の要件は次のとおり
です。1。サイズ:4GBを超えるファイルを許可します。
2.移植性:他のプラットフォームでコンテナファイルを開くことが可能である必要があります。
3.パフォーマンス:コンテナ内のファイルを変更する場合、その特定のファイルを表す「チャンク」のみを変更できます。特に、そのファイルの完全な書き換えがない場合があります。
4.構造:ファイルとディレクトリの階層を構築できるディレクトリ構造を提供する必要があります。
要件1.)および2.)を除外する場合は、複合ファイル(WordやExcelで使用されるような)が適しています。
もちろん、すべての要件を満たすAPIを設計することは可能ですが、まさに問題に取り組むオープンソースソリューションがすでにあるのではないかと思います。
助言がありますか?
c - C用のオープンソース組み込みファイルシステム(または単一ファイル仮想ファイルシステム、または構造化ストレージ)ライブラリ
このようなものの「一般的な」名前が何であるかはわかりません。さまざまな種類のバイナリデータを拡張する単一のファイルに保存するためのファイル形式を提供するライブラリを探しています。
- オープンソース、非GPL(LGPL ok)
- Cインターフェース
- ファイル形式は単一のファイルです
- POSIXのようなファイルAPIを使用した複数のファイル(または他のAPIを使用した複数の「ブロブ」)
- ファイル/構造の編集はインプレースで行われます
- 最初に信頼性が高く、次にパフォーマンスが高い
例は次のとおりです。
上記の問題:
- whefsはあまり成熟していないように見えますが、私が何を求めているかを最もよく表している
- HDF、CDF、NetCDFは使用可能です(非常に信頼性が高く高速です)が、かなり複雑で、不透明なバイナリ「ブロブ」のサポートについて完全に確信しているわけではありません。
編集:
言及するのを忘れました、もう1つの関連する質問:
C / C ++の単純な仮想ファイルシステム
別の同様の質問:
Windows複合ファイルのオープンソースの代替手段はありますか?
編集:
インプレース編集の条件を追加しました。
編集:
whefsに取って代わられました:whio_epfs
python - ファイルのセクションをファイル自体であるかのように扱うにはどうすればよいですか?
ファイルのコレクションまたは単一の複合ファイルにデータを保存しています。複合ファイルは、すべての個別のファイルを連結し、すべての前に、構成要素のオフセットとサイズを示すヘッダーを付けることによって形成されます。複合ファイルのビューを表示するファイルのようなオブジェクトが欲しいのですが、ビューはメンバーファイルの1つだけを表しています。(こうすることで、実際のファイルオブジェクトまたは「ビュー」オブジェクトのいずれかを受け入れるデータを読み取るための関数を使用できます。特定のデータセットがどのように格納されるかを気にする必要はありません。)これはどのライブラリで実行されますか?
このmmap
クラスは、ファイル、長さ、およびオフセットから構築されているため、有望に見えました。これはまさに私が持っているものですが、オフセットは、基になるファイルシステムの割り当ての粒度に合わせる必要があり、私が読んでいるファイルはそうではありません。その要件を満たします。クラスの名前はMultiFile
法案に適合しますが、電子メールメッセージの添付ファイルに合わせて調整されており、私のファイルにはその構造がありません。
私が最も興味を持っているファイル操作は、、、read
およびseek
ですtell
。私が読んでいるファイルはバイナリなので、テキスト指向の関数はそれほど重要readline
ではありません。next
最終的には必要になるかもしれませんがwrite
、追加がどのように動作するかわからないため、今のところその機能を放棄するつもりです。
excel - OpenMCDF を使用して xls ファイルを変更すると、出力が破損する
既存のオフィス ファイルの内容を編集する必要があるプロジェクトに取り組んでいます。複合 ole ファイルのデータに簡単にアクセスできるオープン ソース ライブラリ OpenMCDF ( https://sourceforge.net/p/openmcdf ) を使用しています。データの読み取りには優れていることがわかりましたが、書き込みに問題があります。
以下のように、問題を示す小さなコード サンプルを作成しました (ファイル パスを変更する必要があることに注意してください)。この場合、特定のストリーム (./_VBA_PROJECT/VBA/dir) を取り、ストリームの内容を 50 バイト切り捨てて書き直します。破損を示すために、7zip を使用して出力ファイルを開き、dir ストリームをエクスポートしようとすると、dir ストリームが壊れていることが通知されます。
この問題は、元のストリームよりも短いストリームを作成した場合にのみ発生するようです。さらにバイトを追加しても問題は発生しないようです。
ここで何か助けていただければ幸いです。
com - Ole 添付 IStorage フォーマットの仕様
複合ファイル レベルでの Outlook Ole 添付ファイルの形式と仕様を理解しようとしています。手元にある Ole 添付ファイルは画像 (デバイスに依存しないビットマップ) であり、インライン画像を含む RTF テキスト メールを作成して Msg ファイルを作成しました。本文。Structured Storage Explorer (Microsoft のツール) を使用して msg ファイルを開くと、添付ファイルのサブストレージが表示されます。
Ole Attachment Object の構造は理解していますが、サブストレージ内の MailStream ストリームのフォーマットはどこにもありません。誰かがフォーマットを知っているか、この場合に役立つドキュメントを教えてくれるかどうか尋ねています。具体的には MailStream について質問しています。複合ファイルの仕様がどのようになっているのか、またはそれに類似したものを指して答えないでください。前もって感謝します。