問題タブ [filestream]

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.

0 投票する
5 に答える
48754 参照

c# - using 句はこのストリームを閉じますか?

私はどうやら悪いコーディングの習慣を身につけてしまったようです。これが私が書いてきたコードの例です:

using句が明示的に呼び出さClose()Dispose()StreamReaderFileStream閉じられると考えました。

私が抱えていた問題を解決できる唯一の方法は、上記のブロックを次のように変更することでした。

StreamReader最初のブロックで破棄して を閉じ、基になる も閉じる必要がありFileStreamますか? それとも、私は間違っていましたか?

編集

実際に問題のあるコード ブロックを投稿して、この問題の根底に到達できるかどうかを確認することにしました。私は今ちょうど興味があります。

句に問題があると思ったusingので、すべてを展開しましたが、それでも毎回コピーできません。このメソッド呼び出しでファイルを作成するので、ファイルのハンドルを開いているものは他にないと思います。Path.Combineまた、呼び出しから返された文字列が正しいことも確認しました。

0 投票する
1 に答える
531 参照

c++ - malloc()とglDrawPixels()でアクセス違反?

このコードの何が問題なのか誰にもわかりますか?

大きなビットマップ画像 (3366x600) を描画しようとしているので、SIZE_BG は 6MB です。イメージがスタックからオーバーフローするのを防ぐために、malloc を使用します。glDrawPixels() の呼び出しでアクセス違反エラーが発生します。glDrawPixels を呼び出す前に最初の数バイトをチェックしたため、bgPtr は正しいデータを指しているようで、正しいデータです。

0 投票する
1 に答える
8912 参照

sql-server - SQL Server 2008 での varbinary(max) ファイルストリームの長さ

「varbinary(max) filestream」列のデータの長さを取得する効率的な方法はありますか? varchar に変換してから「LEN」関数を呼び出すサンプルのみを見つけました。

0 投票する
1 に答える
401 参照

sql-server-2008 - SQL Server 2008 ファイル ストリーム エラー

ローカルの Windows XP マシンで、FILESTREAM を使用してデータベースを作成できなくなりました。

代替テキスト http://img379.imageshack.us/img379/9899/errorv.jpg

このエラーは、MS からの次のセキュリティ アップデートのいずれかが原因で発生します。

  • KB952004
  • KB923561
  • KB961373
  • KB956572
  • KB959426
  • KB960863

セキュリティ更新プログラムを削除せずに問題を解決する方法を知っている人はいますか?

0 投票する
4 に答える
5162 参照

c# - SQLサーバーのファイルストリームとaspxのC#

私は教育ドメインのウェブサイトを開発しています。SQL Server 2008を使用してドキュメント (MS Word またはテキスト ファイル) をデータベースにバイナリ形式で保存したいのですFilestreamが、テキスト ボックスでドキュメントを取得できません。

私のコードは次のとおりです。

このコードは、データベースではなくファイルシステムに保存されているドキュメントに対してのみ機能します。そこで、次のコードを試しました。

このコードでは、fs = File.OpenText(path); 「パスへのアクセスが拒否されました」というエラーがオンラインで発生します。

助けてください!

0 投票する
1 に答える
1769 参照

xml - FileStream.readUTFBytes()(Adobe AIR)を呼び出した後、FileStream.truncate()が機能しない

xmlファイルをメモリに読み込み、ノードを追加してから、元のファイルに上書きしようとしています。

次のコードは問題なく機能します(ファイルをクリアしてから、新しいバイトを先頭に書き込みます)。

ただし、ファイルを開いた後に読み取りを実行しようとすると、位置/切り捨ての呼び出しが機能しません。

なぜこれが機能しないのか誰かが何か考えを持っていますか?

ストリームを調べると、最初のコードで、truncate()を呼び出した後、bytesAvailableプロパティは0になります。ただし、2番目のコードでは、bytesAvailableは変更されません(現在のファイルサイズが表示されます)。

0 投票する
3 に答える
289 参照

.net - 管理対象の System.IO.FileStream の基になる stdio FILE* を取得する方法は?

メソッド "bar" が通常の stdio FILE* を取る C/C++ ライブラリ用の .NET アダプターを作成しています。マネージド コード ユーザーがマネージド (ファイル) ストリームを渡すことができるようにインターフェイスを構築することは可能ですか? つまり、データをパイプするための中間バッファーとコードを作成する必要はありません。また、bar() が読み取りを行うという仮定は、物事をより良くするだけですか?

0 投票する
6 に答える
4173 参照

delphi - 画像の読み込みとサイズ変更の最速の方法は何ですか?

特定のディレクトリにある画像のサムネイルを表示する必要があります。画像を画像コンポーネントにロードする前に、TFileStream を使用して画像ファイルを読み取ります。その後、ビットマップはサムネイル サイズにサイズ変更され、TScrollBox の TImage コンポーネントに割り当てられます。

正常に動作しているように見えますが、画像が大きくなるとかなり遅くなります。

ディスクから (イメージ) ファイルをロードしてサイズを変更するより高速な方法はありますか?

ありがとう、ピーター

0 投票する
1 に答える
2339 参照

nhibernate - NHibernate を使用した Sql 2008 ファイルストリーム

ユーザーがアップロードした画像を保存するために、SQL Server 2008 で Filestream を使用しようとしています。

私の問題は、NHibernate でエラーが発生しないことですが、データがデータベースに保存されないことです。レコードは作成されません。

以下の Image クラスはカスタム クラスです (System.Drawing.Image と混同しないでください)。

私の保存方法は次のようになります。

保存が間違っているか、マッピングがオフになっている可能性があります。ImageData は、データベースの varbinary(max) フィールドです。

0 投票する
4 に答える
4021 参照

c# - AsciiEncoding.GetBytes および Convert.FromBase64String を使用してデコードされたバイトを書き込む際の FileStream.Write のパフォーマンスの問題

FileStream.Write 関数の使用中にパフォーマンスの問題に直面しています。

StreamReader オブジェクトを使用してファイル (~ サイズは 400 KB) から Base64 文字列を読み取るために使用するコンソール アプリケーションがあります。Convert.FromBase64String を使用して、この文字列をバイト配列に変換します。次に、FileStream オブジェクトを使用して、このバイト配列をファイルに書き込みます。ここで得られたバイト配列の長さは 334991 でした。

バイト配列の書き込みにかかる時間を測定したところ、約0.116 秒でした。

楽しみのために、ASCIIEncoding.GetBytes 関数を使用して、同じ Base64 でエンコードされた文字列からバイト配列を取得しました (これでは正しい DECODED 出力が得られないことはわかっていましたが、試してみたかっただけです)。FileStream オブジェクトを使用して、このバイト配列をファイルに書き込みました。ここで得られたバイト配列の長さは 458414 でした。

この方法論を使用してバイト配列の書き込みにかかる時間を測定したところ、約0.008 秒であることがわかりました。

サンプルコードは次のとおりです。

Base64 でエンコードされた文字列を含む約 5000 個のファイルに対してテストを実行しましたが、これら 2 種類のバイト配列の書き込みにかかる時間の差はほぼ 10 倍です ( 実際のデコードを使用してバイト配列を書き込む方が時間がかかります)。

Convert.FromBase64String を使用して取得したバイト配列の長さは、ASCIIEncoding.GetBytes 関数を使用して取得したものよりも短くなっています。

私がやろうとしているのは、FileStream オブジェクトを使用して大量のバイトを書き込むことだけなのだろうか。では、バイト配列をディスクに書き込む際に、なぜこのような大幅なパフォーマンスの違い (書き込み時間) が発生するのでしょうか?

それとも、私は何かひどく間違ったことをしていますか? お知らせ下さい。