Я только что попытался автоматизировать передачу файлов с моего мобильного телефона (iPhone) на мой жесткий диск. Это работает через MTP и Powershell (кажется, единственный рабочий подход согласно другим сообщениям Stackoverflow).
В общем, все работает хорошо. Я использую $shell = new-object -com Shell.Application
, а затем $shell.GetFolder.items()
для навигации в файловой системе через COM-объекты.
Однако мне интересно, как получить реальные данные файла, поскольку они кажутся странными ... Вывод одного изображения предназначен для пример:
Parent : System.__ComObject
Name : DSUF9528.JPG
Path : ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\\?\usb#vid_05ac&pid_12a8&mi_00#0#{6ac27878-a6fa-4155-ba85-f98f491d4f33}\SID-{10002,Internal
Storage,256000000000}\{00000002-0000-0000-0200-000000000000}\{0000160A-0000-0000-0A16-000000000000}\{00001DD7-0000-0000-D71D-000000000000}
GetLink :
GetFolder :
IsLink : False
IsFolder : False
IsFileSystem : False
IsBrowsable : False
ModifyDate : 30.12.1899 00:00:00
Size : 0
Type : JPG-Datei
Как видите, размер равен 0, а значение modifyDate равно 1899. Оно установлено для всех 5000 изображений на моем iPhone и фактически неверно. Windows Проводник может показывать действительные значения для этих файлов (как он это делает?). Что я могу сделать, чтобы узнать реальные значения через Powershell или почему значения, возвращаемые COM-объектом, повреждены?
Буду признателен за любую помощь:)