Работа с файлами FILESTREAM - PullRequest
       11

Работа с файлами FILESTREAM

0 голосов
/ 20 сентября 2010

Наше приложение хранит пользовательские файлы на физических дисках (большое их количество). Файлы организованы и сгруппированы в папки (одна папка для каждого пользователя). Приложение также манипулирует папками, создавая в нем подпапки и группируя файлы в эти подпапки. Физическое расположение каждого файла хранится в базе данных SQL Server. Таким образом, вы можете оценить, что приложение тесно связано с физической файловой системой. Мы собираемся перенести операции управления файлами на SQL Server FILESTREAM. Однако, как я понял, FILESTREAM не позволяет создавать файловую иерархию, состоящую из папок и групп папок. Также FILESTREAM не позволяет мне переименовывать файлы. Это правда о FILESTREAM? Есть ли другой вариант использования FILESTREAM для управления физическими файлами без необходимости значительного изменения логики приложения?

1 Ответ

0 голосов
/ 20 сентября 2010

См. здесь для общего обзора функции Filestream.

При использовании Filestream вы позволяете ядру Sql Server управлять размещением и именованием файлов NTFS. Физические пути абстрагируются механизмом, и поэтому клиенты не могут напрямую манипулировать ими / переименовывать их.

Идея состоит в том, что если ваш сценарий организует большие двоичные объекты в иерархию, эта иерархия должна быть реализована на реляционном уровне.

Поскольку открытие данных файлового потока должно происходить через специальный API (и включает в себя ядро ​​Sql Server), необходимо изменить существующий клиентский код, чтобы использовать этот API вместо непосредственного открытия файлов NTFS.

...