대부분의 MTP ( Media Transfer Protocol ) 장치는 Windows 파일 탐색기에서 장치 이름 또는 GUID로 표시되지만 드라이브 문자가 할당되어 있지 않습니다.
명령 행에서 이러한 장치의 파일에 어떻게 액세스 할 수 있습니까? cmd.exe 또는 PowerShell 사용
대부분의 MTP ( Media Transfer Protocol ) 장치는 Windows 파일 탐색기에서 장치 이름 또는 GUID로 표시되지만 드라이브 문자가 할당되어 있지 않습니다.
명령 행에서 이러한 장치의 파일에 어떻게 액세스 할 수 있습니까? cmd.exe 또는 PowerShell 사용
답변:
불행히도 MTP에 의해 노출 된 API는 일반 파일 시스템 API와는 매우 다릅니다. 따라서 MTP 장치를 읽기 / 쓰기 파일 시스템 으로 노출 할 수 없습니다. 주된 이유:
위키 백과 는 말합니다 :
MTP 나 PTP 표준은 객체를 직접 수정할 수 없습니다. 대신 수정 된 객체는 전체적으로 다시 업로드해야하므로 큰 객체의 경우 시간이 오래 걸릴 수 있습니다. PTP / MTP를 사용하면 시작 단계에서 파일 크기를 알아야합니다.
공통 파일 복사 프로그램은 소스와 대상 파일을 열고 소스 파일에서 대상으로 청크 단위로 데이터를 복사합니다. MTP 특수 함수를 사용해야하고 일반 파일 시스템 프리미티브 (읽기, 찾기, 쓰기)를 사용할 수 없으므로 MTP에서는 작동하지 않습니다.
다른 제한 사항도 있습니다. 예를 들어, MTP 장치에서 동시에 읽거나 쓸 수있는 파일 수는 크게 제한됩니다. 장치는 단순히 파일 시스템처럼 작동하지 않습니다.
MTP 장치의 읽기 전용 파일 시스템 드라이버가 가능하다고 가정 하지만 위에서 설명한 문제로 인해 거의 사용되지 않으므로 아무도 그것을 만들지 않아도됩니다.
MTP 드라이브 ( http://www.mtpdrive.com/index.html ) 라는 독점적 인 프로그램이 있지만 Windows에서 MTP 장치를 드라이브로 "마운트"할 수 있습니다. 몇 가지 합리적인 제한으로 훌륭한 일을합니다!
MTP 포팅 키트의 MTPMon과 함께 무언가를 모을 수 있습니다.
또는 PowerShell 은 COM 개체 를 만들고 해당 메서드를 호출 할 수 있으므로 Windows 탐색기에서 사용하는 API (예 : GetDeviceInfo () 및 GetObjectInfo ())를 사용할 수 있습니다.