【发布时间】:2020-04-24 23:38:09
【问题描述】:
我刚刚尝试自动将文件从我的手机 (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,修改日期为 1899。这是为我 iPhone 上的所有 5000 张图像设置的,实际上是错误的。 Windows 资源管理器可以显示这些文件的有效值(它是如何做到的?)。我该怎么做才能通过 Powershell 找出真正的值,或者为什么 COM 对象返回的值会损坏?
如果有任何帮助,我将不胜感激:)
【问题讨论】:
-
您可以从 Powershell 或 C# 调用 ADB(Android 调试桥)来完成此操作。
标签: powershell mtp