Существует ли управляемый / .NET способ доступа к сводной информации для файла? - PullRequest
0 голосов
/ 27 января 2010

Если щелкнуть правой кнопкой мыши файл в Windows и выбрать «Свойства» в меню, откроется окно «Свойства». В этом окне для большинства типов файлов есть вкладка «Сводка», содержащая различную информацию.

Существует ли управляемый / .NET способ получения этой информации? Я неправильно предположил, что это будет тривиальной вещью, и что все это будет частью некоторого словарного объекта в объекте System.IO.FileInfo, и вы можете просто передать ему строку нужного тега, и он вернет некоторое значение. Я был не прав.

В своих поисках я обнаружил только команды оболочки, упоминания о вызовах API или установку com-объектов. Это запасные решения (и я бы предпочел их избегать). Что я действительно хочу знать, так это то, что я пропускаю .NET способ доступа к этой информации?

Ответы [ 4 ]

0 голосов
/ 27 января 2010

То, что вы хотите, называется Структурированное хранилище , и эта информация доступна через StgOpenStorageEx, который находится в Ole32.dll. Глядя на страницу pinvoke.net для этого метода, кажется, что некоторые функциональные возможности могут быть извлечены с использованием System.IO.Packaging.StorageInfo, но для этого требуется некоторая работа, и похоже, Вы все еще должны использовать P / Invoke.

0 голосов
/ 27 января 2010

Вы пробовали System.Diagnostics.FileVersionInfo?

var fvi = FileVersionInfo.GetVersionInfo("c:\temp.txt");

Patrick.

0 голосов
/ 27 января 2010

DSOfile.dll позволяет редактировать их для документов Office. К сожалению, я не думаю, что эти свойства универсальны для файлов - они не всегда будут доступны.

Просто перечитайте ваш абзац, сказав, что COM-объекты являются запасными решениями - однако, это решение, представленное на веб-сайте MS, так что я не думаю, что вы будете делать намного лучше.

0 голосов
/ 27 января 2010

Я неправильно предположил, что это было бы тривиальной вещью и что все это будет частью некоторых объект словарь на Объект System.IO.FileInfo и вы может просто кормить его строкой тега Вы хотели, и это вернет некоторые значение

System.IO.FileInfo.Attributes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...