2011-01-20 2 views
0

Это может быть вопрос из двух частей.Как я могу получить доступ к свойствам файла в C#?

1) Как я могу получить доступ к свойствам файла (статус только для чтения, createdate, почти все, что вы можете видеть на экране свойств при щелчке правой кнопкой мыши по файлу и выборе «Свойства») на C#?

Есть ли такой синтаксис, как file.Attributes["CreationDateTime"], который это сделает?

2) Как я могу получить доступ к файлу .lnk (например, ярлык на рабочем столе) с помощью C#?
И я хочу, чтобы все цели, у меня есть те, которые выглядят как:

"[somepath]" "[somepath]"/CMD "somepath"

И мне нужно, что все значения , Текущий код дает только первый путь.

+1

Я хотел бы сделать так, чтобы просто сидеть прямо сейчас, пока я рассказываю вам все о моем друге, библиотеке 'msdn от microsoft' [FileInfo] (http://msdn.microsoft.com/en-us /library/system.io.fileinfo.aspx) – jcolebrand

+2

@FileInfo Не будьте ненавистником. –

+0

@ drachenstern- Я знаю этот класс, но, похоже, он не имеет того, что мне нужно. – MAW74656

ответ

3

С System.IO.FileInfo объект. У этого есть время создания как свойство.

Я не уверен, что вы имеете в виду во второй части ...

+0

Я думаю, что он имеет в виду ярлык для второй части. –

+0

Правильно, но есть ли способ получить доступ к информации о файле, который не является свойством объекта FileInfo? – MAW74656

+0

@ MAW74656 - какая вам информация? – ChrisF

2

Крис ответил на первую часть.

Для второй части вашего вопроса: вы на самом деле хотите играть с IShellLink, который является родным Windows API, который является не, доступным непосредственно в .NET.

Однако кто-то там всегда пишет reusable library. У меня должно быть свойство, которое дает вам цель.

Heres another library я нашел на Wikipedia.org это один рекомендуется, так как это 100% управляемое решение, IOW, он не вызывает COM (то, что вы хотите, а не делать)

Наконец просто упаковывают вам нужно file format, here it is. Ссылка на PDF, похоже, не работает, но вы можете загрузить все изменения, которые я думаю.


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

Как и IShellLink, если .NET не предоставляет некоторый API, вы должны пойти на родной язык. Но обычно .NET предоставляет то, что вам нужно. Посмотрите на этот пункт на странице MSDN, что Крис связан с:

Класс FileInfo предоставляет следующие свойства, которые позволяют получить информацию о файле. Для примера использования каждого свойства , см. Страницы свойств.

Свойство Directory извлекает объект, представляющий каталог родительского файла .

Свойство DirectoryName возвращает полный путь родительского каталога файла.

Проверка наличия файла перед запуском на .

Возвращает свойство IsReadOnly или задает значение, которое указывает, может ли файл быть изменен.

Length извлекает размер файла .

Name извлекает имя файла.

+0

@ giddy- это выглядит хорошо, но немного больше, чем мне нужно прямо сейчас. Я могу получить цель файла, используя ссылку Джорджа, которая делает трюк. Но действительно хорошая информация! – MAW74656

+1

np! =) Решение Yeah George WSH выглядит потрясающе, а также гораздо меньше головной боли, может быть, даже и по-настоящему. – gideon

+0

@ giddy- Я был преднамеренно расплывчатым в первой части, я надеялся найти способ ссылки на атрибуты по их имени String (мой идеальный синтаксис будет file.Attributes ["AttributeName"]). – MAW74656

Смежные вопросы