Как получить свойства файла?
Мне нужно приложение, которое отображает некоторые свойства файла медиафайла, если оно доступно, например (не знаю точных английских слов, используемых в окнах для него) 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', символы загрузки пропущены. Модуль оптимизирован и включена опция отладчика "Просто мой код". Программа "[6300] WindowsFormsApplication2.vshost.exe: трассировка программы" завершила работу с кодом 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.)
Но как мне использовать эту функцию, я думаю, не так, как если (io.ofileinfo.FullName.exist) {Console.Write(io.ofileinfo.fullname);}?
2 ответа
Вы можете попробовать вот так.... используя C#
При просмотре или открытии файла, чтобы получить его имя, класс FileInfo оснащен свойством Name. Вот пример кода:
FileInfo oFileInfo = new FileInfo(strFilename);
if (FileName != null || FileName.Length == 0)
{
MessageBox.Show("My File's Name: \"" + oFileInfo.Name + "\"");
// For calculating the size of files it holds.
MessageBox.Show("myFile total Size: " + oFileInfo.Length.ToString());
}
вы можете проверить, как это
if (!oFileInfo.Exists)
{
throw new FileNotFoundException("The file was not found.", FileName);
}
Чтобы узнать, что это за значения даты и времени, вы можете получить доступ к свойству Информация о файловой системе, используя.
DateTime dtCreationTime = oFileInfo.CreationTime;
MessageBox.Show("Date and Time File Created: " + dtCreationTime.ToString());
Чтобы узнать расширение файла, вы можете получить доступ к значению свойства FileSystemInfo.Extension.
MessageBox.Show("myFile Extension: " + oFileInfo.Extension);
Вот ссылка с информацией о просмотре атрибутов.
Кроме того, класс FileInfo - это то, что вы, вероятно, хотите использовать.
Какие еще виды недвижимости вы смотрите?