อุปกรณ์ MTP ( Media Transfer Protocol ) ส่วนใหญ่จะแสดงใน Windows File Explorer ภายใต้ชื่ออุปกรณ์หรือ GUID แต่ไม่มีการกำหนดอักษรระบุไดรฟ์
ฉันจะเข้าถึงไฟล์บนอุปกรณ์ดังกล่าวจากบรรทัดคำสั่งได้อย่างไร ใช้ cmd.exe หรือ PowerShell
อุปกรณ์ MTP ( Media Transfer Protocol ) ส่วนใหญ่จะแสดงใน Windows File Explorer ภายใต้ชื่ออุปกรณ์หรือ GUID แต่ไม่มีการกำหนดอักษรระบุไดรฟ์
ฉันจะเข้าถึงไฟล์บนอุปกรณ์ดังกล่าวจากบรรทัดคำสั่งได้อย่างไร ใช้ cmd.exe หรือ PowerShell
คำตอบ:
น่าเสียดายที่ API ที่เปิดเผยโดย MTP นั้นแตกต่างจาก API ระบบไฟล์ปกติมาก ดังนั้นการเปิดเผยอุปกรณ์ MTP เป็นระบบไฟล์แบบอ่าน / เขียนจึงไม่สามารถทำได้ เหตุผลหลัก:
Wikipedia พูดว่า :
ทั้ง MTP และมาตรฐาน PTP ไม่อนุญาตให้ปรับเปลี่ยนวัตถุโดยตรง แต่วัตถุที่ถูกดัดแปลงจะต้องทำการบรรจุซ้ำทั้งหมดซึ่งอาจใช้เวลานานสำหรับวัตถุขนาดใหญ่ ด้วย PTP / MTP ต้องรู้จักขนาดไฟล์ในระยะเปิด
โปรแกรมคัดลอกไฟล์ทั่วไปของคุณเพียงแค่เปิดซอร์สและไฟล์เป้าหมายและคัดลอกข้อมูลเป็นกลุ่มจากไฟล์ต้นฉบับไปยังเป้าหมาย สิ่งนี้จะไม่ทำงานกับ MTP เนื่องจากคุณต้องใช้ฟังก์ชั่นพิเศษของ MTP และระบบไฟล์พื้นฐานทั่วไป (อ่าน, ค้นหา, เขียน) ไม่สามารถใช้งานได้
นอกจากนี้ยังมีข้อ จำกัด อื่น ๆ ตัวอย่างเช่นจำนวนไฟล์ที่สามารถอ่านหรือเขียนพร้อมกันบนอุปกรณ์ MTP มี จำกัด อย่างรุนแรง อุปกรณ์ไม่ทำงานเหมือนระบบไฟล์
ฉันคิดว่าไดรเวอร์ระบบไฟล์แบบอ่านอย่างเดียวสำหรับอุปกรณ์ MTP อาจเป็นไปได้ แต่เนื่องจากปัญหาที่ระบุไว้ข้างต้นจึงเป็นการใช้งานน้อยมากดังนั้นจึงไม่มีใครใส่ใจที่จะสร้างมันขึ้นมา
มีโปรแกรมที่เป็นกรรมสิทธิ์ (แต่ก็ยังดีอยู่): MTP Drive ( http://www.mtpdrive.com/index.html ) ซึ่งช่วยให้คุณสามารถ "ติดตั้ง" อุปกรณ์ MTP เป็นไดรฟ์ใน Windows ด้วยข้อ จำกัด ที่สมเหตุสมผลมันทำงานได้ยอดเยี่ยม!
คุณอาจจะสามารถ Cobble บางสิ่งร่วมกับ MTPM ของชุดการย้าย MTP ได้
อีกวิธีหนึ่งPowerShellสามารถสร้างวัตถุCOMและเรียกวิธีการของพวกเขาดังนั้นคุณอาจจะสามารถใช้ API ที่ Windows Explorer ใช้ (ตัวอย่างเช่น GetDeviceInfo () และ GetObjectInfo ()