Присоединение произвольных данных к DirectoryInfo/FileInfo?

У меня есть сайт, который похож на SVN, но без контроля версий. Пользователи могут загружать и загружать в проекты, где каждый проект имеет каталог (с подкаталогами и файлами) на сервере. Я хотел бы добавить дополнительную информацию к файлам, например, кто его загрузил, сколько раз он был загружен и так далее. Есть ли способ сделать это для FileInfo, или я должен сохранить это в таблице, где он ассоциируется с абсолютным путем или что-то? Таким образом, звучит хитро и склонно к ошибкам:\

2 ответа

Решение

Можно добавить данные в произвольные файлы с помощью NTFS (файловой системы Windows по умолчанию, которую, я предполагаю, вы используете). Вы бы использовали альтернативные потоки данных. Microsoft использует это для расширенных метаданных, таких как автор и сводная информация в документах Office.

Однако на самом деле подход к базе данных является разумным, широко используемым и, по моему мнению, менее подверженным ошибкам. Не очень хорошая идея изменять исходный файл, если вы на самом деле не изменяете его содержимое.

Как указывает Майкл Петротта, альтернативные потоки данных - отличная идея. Вот учебник по C# с кодом. Правда, база данных - это путь. SQL Compact и SQLite довольно просты и просты в использовании.

Другие вопросы по тегам