Чтение свойств файла из файловой системы Windows? - PullRequest
0 голосов
/ 23 марта 2012

Кто-нибудь сможет мне помочь с тем, как получить свойства файла из объекта Windows, то есть FileSize, FileType, Year, Label, DateModified, FileVersion. Я попытался получить доступ к информации в классе FileInfo, и, похоже, он не обладает всеми необходимыми свойствами, которые я ищу. Какие другие библиотеки я могу использовать для доступа к этой информации, и, если вы могли бы предоставить примеры, спасибо

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Часть этого уже доступна в FileInfo (длина - размер файла, дата изменения - просто LastWriteTime).Некоторая информация доступна по FileVersionInfo .Тип довольно хитрый, но в этом посте есть некоторая информация о поиске mime-типа в реестре.Это сработало для меня в Windows 7:

private static string GetType(string fileName)
    {
        string type = "Unknown";
        string ext = System.IO.Path.GetExtension(fileName).ToLower();
        Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
        if (regKey != null && regKey.GetValue("") != null)
        {
            string lookup = regKey.GetValue("").ToString();
            if (!string.IsNullOrEmpty(lookup))
            {
                var lookupKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(lookup);
                if (lookupKey != null)
                {
                    type = lookupKey.GetValue("").ToString();
                }
            }
        }
        return type;
    }

. Это даст тип, который вы видите на подробной вкладке свойств файла.Например, «Приложение» для exe и «Растровое изображение» для bmp.

Ответ здесь получает тип, используя функцию windows api shgetfileinfo.

0 голосов
/ 23 марта 2012

Эй, проверьте с MSDN: http://msdn.microsoft.com/en-us/library/system.io.file.aspx

Пример

GetCreationTime ()
GetLastWriteTime ()
...