2017-12-16 11 views
0

私はファイルを持っていますStreamサンプルデータベース、私はテーブルにレコードを追加しました。 C#SqlFileStreamクラスのfile.PathName()サンプルプロジェクトを使用すると、このアドレスを認識してファイルを取得できますが、Windowsエクスプローラに表示されませんでしたか? このアドレスは何ですか?それは偽のアドレスですか?このクラスは、実際のアドレスを見つけるためのFileGroupパスを調べることができますか?SQLファイルストリームPathNameはウィンドウ内に表示されます.Explorer

コンピュータ名\ SQL2016 \のV02-A60EC2F8-2B24-11DF - 9CC3-AF2E56D89593 \ FileStreamTestDB \ DBO \ BLOB_TABLE \ FILEDATA \ 00953530-2F65-4AC9-81E9-0281EFB89592 \ VolumeHint-HarddiskVolume3 \

答えて

0

FILESTREAM列のデータは、データベースの内部に格納されます。ローカルファイルシステムFILESTREAMファイルグループディレクトリを参照することで、データベースに格納されている内部ファイルを確認できますが、そのパスはリモートアクセスでは公開されていないため、まったく使用しないでください。 Win32 API経由でFILESTREAMデータにアクセスするためのハンドルを取得するには、SqlFileStreamを使用する必要があります。

Windowsエクスプローラまたは他のアプリケーションからデータベースに格納されたファイルにアクセスする場合は、代わりにFiletableを使用することを検討してください。 A FileTableは内部でFILESTEAMを利用しますが、非トランザクションアクセスのUNCパスを介してテーブルに格納されているファイルを公開します。これにより、通常のファイルまたはT-SQLのINSERT/UPDATE/DELETEステートメントを使用してファイルを追加/変更/削除することができます。どちらの場合も、変更はデータベースFileTableに保存され、FileTableディレクトリ共有にも反映されます。

関連する問題