Windows의 명령 행에서 MTP 장치에 어떻게 액세스합니까?


68

대부분의 MTP ( Media Transfer Protocol ) 장치는 Windows 파일 탐색기에서 장치 이름 또는 GUID로 표시되지만 드라이브 문자가 할당되어 있지 않습니다.

명령 행에서 이러한 장치의 파일에 어떻게 액세스 할 수 있습니까? cmd.exe 또는 PowerShell 사용


2
gphoto2와 같은 Linux MTP 호환 구현 에 스크립트 업로드 방법 이 있다는 사실은 Windows Media Player가 다른 소프트웨어가 USB MTP 인터페이스에 액세스하는 것을 차단하지 않는다고 가정 할 때 Windows에서 이것이 가능 해야 함을 시사합니다 ... I 이것이 가능한지 알고 싶습니다.
Mokubai

2
나는 내 안드로이드 MTP 장치로 이것에 대한 해결책을 찾으려고 포기하고 내 장치에 WebDAV 서버를 설치하게 되었습니다 . 이 천천히이기는하지만, 네트워크 드라이브로 마운트 될 수있다.
Mark Booth

WebDAV ... 웃음 ... 아프다. 그래도 충분하게 작동합니다. 놀랍게도 Windows가 Linux가 수행하는 작업을 손쉽게 관리 할 수없는 것 같습니다. 아
Svartalf

@MarkBooth WebDAV 서버를 사용해 보았지만 전송 한 대부분의 파일이 손상된 것 같습니다 (90 % 이상).
Michael

안드로이드를위한 다른 솔루션은 다른 방향으로 가고 연결된 장치를 조정합니다 : 1 , 2 , 3 .
Frédéric

답변:


29

불행히도 MTP에 의해 노출 된 API는 일반 파일 시스템 API와는 매우 다릅니다. 따라서 MTP 장치를 읽기 / 쓰기 파일 시스템 으로 노출 할 수 없습니다. 주된 이유:

위키 백과 는 말합니다 :

MTP 나 PTP 표준은 객체를 직접 수정할 수 없습니다. 대신 수정 된 객체는 전체적으로 다시 업로드해야하므로 큰 객체의 경우 시간이 오래 걸릴 수 있습니다. PTP / MTP를 사용하면 시작 단계에서 파일 크기를 알아야합니다.

공통 파일 복사 프로그램은 소스와 대상 파일을 열고 소스 파일에서 대상으로 청크 단위로 데이터를 복사합니다. MTP 특수 함수를 사용해야하고 일반 파일 시스템 프리미티브 (읽기, 찾기, 쓰기)를 사용할 수 없으므로 MTP에서는 작동하지 않습니다.

다른 제한 사항도 있습니다. 예를 들어, MTP 장치에서 동시에 읽거나 쓸 수있는 파일 수는 크게 제한됩니다. 장치는 단순히 파일 시스템처럼 작동하지 않습니다.

MTP 장치의 읽기 전용 파일 시스템 드라이버가 가능하다고 가정 하지만 위에서 설명한 문제로 인해 거의 사용되지 않으므로 아무도 그것을 만들지 않아도됩니다.


3
읽기 전용 파일 시스템 드라이버는 현재 존재하는 것 같습니다 : ptpdrive.com
Arne de Bruijn

4
실제로는 "불가능"하지 않습니다. 당신이 리눅스에 FUSE 파일 시스템이 that're으로 내가 gphotofs 및 mtpfs을 가지고 있음을 고려하면 완전하게 읽기 / 쓰기 금지의 'Windows에서 "드라이브 문자"로이 작업을 수행하는 것이 확실히 가능 ... 그들은 단지 그것을 사용할 수 없습니다했습니다 또는 쉽게.
Svartalf

3

MTP 드라이브 ( http://www.mtpdrive.com/index.html ) 라는 독점적 인 프로그램이 있지만 Windows에서 MTP 장치를 드라이브로 "마운트"할 수 있습니다. 몇 가지 합리적인 제한으로 훌륭한 일을합니다!


1. 합성 MTP 드라이브를 EASEUS / Recuva / R-Studio와 같은 일반적인 드라이브 데이터 복구 도구로 공급하고 데이터를 효율적으로 복구 할 수 있습니까? 2. robocopy / 기타 빠른 데이터 전송 도구를 사용하여 해당 드라이브에서 Windows 기본 드라이브 (C / D 등)로 데이터를 효율적으로 전송할 수 있습니까?
SIslam

1

MTP 포팅 키트의 MTPMon과 함께 무언가를 모을 수 있습니다.

또는 PowerShellCOM 개체 를 만들고 해당 메서드를 호출 할 수 있으므로 Windows 탐색기에서 사용하는 API (예 : GetDeviceInfo () 및 GetObjectInfo ())를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.