как получить свойства файла?

Мне нужно приложение, которое отображает некоторые свойства файла мультимедиа, если они доступны, например (не знаю точных английских слов, используемых в Windows для него) FileName, Length / Duration, FileType (.avi .mp3 и т. д.) Я пробовал taglib и windowsapishell, но не получил рабочего результата (ссылки хороши)

ShellFile so = ShellFile.FromFilePath(file);
so.Properties.System.(everythingIwant)

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

'WindowsFormsApplication2.vshost.exe' (управляемый (v4.0.30319)): загружен 'C: \ Windows \ Microsoft.Net \ assembly \ GAC_MSIL \ WindowsBase \ v4.0_4.0.0.0__31bf3856ad364e35 \ WindowsBase.dll ', Пропущены символы загрузки. Оптимизирован модуль и включена опция отладчика' Just My Code '. Программа' [6300] WindowsFormsApplication2.vsh ost.exe: Program Trace »завершился с кодом 0 (0x0). Программа« [6300] WindowsFormsApplication2.vshost.exe: Managed (v4.0.30319) »завершилась с кодом 0 (0x0).

что-то простое, вроде

var thing = so.Properties.System.FileName.Description;
Console.WriteLine(thing);

, не сработает

Я кое-что знаю о программировании на Java и PHP, но я совершенно новичок в C #


Особая благодарность @ marr75 и @errorstacks!

один дополнительный вопрос: Я сделал это, и он работает

class Program
{
    static void Main(string[] args)
    {   
        string file = "E:/Dump/Shutter Island.avi";

        FileInfo oFileInfo = new FileInfo(file);
        Console.WriteLine("My File's Name: \"" + oFileInfo.Name + "\"");
        DateTime dtCreationTime = oFileInfo.CreationTime;
        Console.WriteLine("Date and Time File Created: " + dtCreationTime.ToString());
        Console.WriteLine("myFile Extension: " + oFileInfo.Extension);
        Console.WriteLine("myFile total Size: " + oFileInfo.Length.ToString());
        Console.WriteLine("myFile filepath: " + oFileInfo.DirectoryName);
        Console.WriteLine("My File's Full Name: \"" + oFileInfo.FullName + "\"");

    }               
}

, но я хочу, чтобы он предоставлял мне информацию, только если она существует. Я видел

   **Exists**   Gets a value indicating whether a file exists. (Overrides FileSystemInfo.Exists.)

Но как использовать эту функцию, мне кажется, не нравится if (io.ofileinfo.FullName.exist) {Console.Write (io.ofileinfo.fullname);}?

8
задан ComputerIntelligentAgent 22 October 2011 в 22:01
поделиться