sql file stream PathName dosent показать в окне fileExplorer
У меня есть файл Stream Sample database, я добавил записи в таблицу. Когда я использую file.PathName(), мой пример проекта в классе C# SqlFileStream распознает этот адрес и получает мой файл, но не отображается в проводнике Windows? Что это за адрес? Это поддельный адрес? Этот класс может смотреть на путь FileGroup для поиска реального адреса? Если нет, как этот класс найти путь?
\ ComputerName \ SQL2016 \ v02-A60EC2F8-2B24-11DF-9CC3-AF2E56D89593 \ FileStreamTestDB \ ДБО \BLOB_Table\FILEDATA \00953530-2F65-4AC9-81E9-0281EFB89592\VolumeHint-HarddiskVolume3
2 ответа
Данные в FILESTREAM
столбцы хранятся внутри базы данных. Вы можете просмотреть внутренние файлы, хранящиеся в базе данных, просмотрев локальную файловую систему FILESTREAM
каталог файловой группы, но этот путь не предоставляется для удаленного доступа и не должен использоваться вообще. Вам нужно будет использовать SqlFileStream
чтобы получить ручку для доступа к FILESTREAM
данные через Win32 API.
Если вы хотите получить доступ к файлам, хранящимся в базе данных через Windows Explorer или любое другое приложение, рассмотрите возможность использования Filetable
вместо. FileTable
рычаги FILESTEAM
внутренне, но предоставляет файлы, хранящиеся в таблице, через UNC-путь для нетранзакционного доступа. Это позволяет добавлять / изменять / удалять файлы с помощью общих файловых ресурсов или с помощью операторов T-SQL INSERT/UPDATE/DELETE. В обоих случаях изменения хранятся в базе данных FileTable
и отражено в FileTable
общий каталог тоже.
ИспользоватьSystem.Data.SqlTypes.SqlFileStream
Нужно получитьGET_FILESTREAM_TRANSACTION_CONTEXT()
для доступа к файлу