Проводник Windows служит универсальным инструментом управления файлами для пользователей Windows, позволяя им перемещаться по папкам, просматривать файлы и выполнять различные операции. Когда дело доходит до мультимедийных файлов, таких как изображения или видео, может быть полезно извлечь такую информацию, как длина или разрешение файла, непосредственно из проводника Windows. В этой статье блога мы рассмотрим несколько методов и примеры кода для выполнения этой задачи. Итак, приступим!
Метод 1: использование Windows PowerShell
Windows PowerShell предоставляет мощную среду сценариев, которая позволяет нам взаимодействовать с различными аспектами операционной системы Windows. Вот пример фрагмента кода для извлечения информации о медиафайле с помощью PowerShell:
$path = "C:\Path\To\Media\File.jpg"
$file = Get-Item $path
$length = $file.Length
$width = (New-Object System.Drawing.Bitmap($path)).Width
$height = (New-Object System.Drawing.Bitmap($path)).Height
Write-Host "File Length: $length bytes"
Write-Host "Resolution: $width x $height pixels"
Метод 2: использование Windows API через C#
Если вы предпочитаете более программный подход, вы можете использовать C# для подключения к Windows API и извлечения информации о медиафайле. Вот пример фрагмента кода:
using System;
using System.Drawing;
using Shell32;
class Program
{
static void Main(string[] args)
{
string filePath = "C:\\Path\\To\\Media\\File.jpg";
Shell shell = new Shell();
Folder folder = shell.NameSpace(System.IO.Path.GetDirectoryName(filePath));
FolderItem file = folder.ParseName(System.IO.Path.GetFileName(filePath));
string length = folder.GetDetailsOf(file, 27); // Length property
string resolution = folder.GetDetailsOf(file, 31); // Resolution property
Console.WriteLine("File Length: " + length);
Console.WriteLine("Resolution: " + resolution);
}
}
Метод 3: использование Python с win32com.client
Python предоставляет обширные библиотеки для автоматизации Windows. Модуль win32com.clientпозволяет нам взаимодействовать с приложениями Windows и извлекать информацию из медиафайлов. Вот пример фрагмента кода:
import win32com.client
path = r"C:\Path\To\Media\File.jpg"
shell = win32com.client.Dispatch("Shell.Application")
folder = shell.Namespace(path)
file = folder.ParseName(path)
length = folder.GetDetailsOf(file, 27) # Length property
resolution = folder.GetDetailsOf(file, 31) # Resolution property
print("File Length:", length)
print("Resolution:", resolution)