Описание функции
ExamineMTPDirectory
Запускает перечисление папок и файлов
ExamineMTPDirectory(ID, @ErrorOutput$)
Параметры
ID | Идентификатор подключения |
@ErrorOutput$ |
Указатель на строку содержащую текст ошибки, размером не менее 128 символов включая Null. Или 0 если нет необходимости получить текстовое описание ошибки в случае ошибки. |
Возвращаемое значение
Успех: | Возвращает: 1, если операция успешна |
Ошибка: | Возвращает: 0 |
См. также
FinishMTPDirectoryПример
EnableExplicit
; RSBasic
; http://forums.purebasic.com/german/viewtopic.php?t=31465
XIncludeFile "PB.Ex_MTP.pbi"
Global Output$ = Space(1024)
Global ErrorOutput$ = Space(128)
Global DeviceName$
;List all devices to determine the device name.
If ExamineMTP(@ErrorOutput$)
While NextMTPEntry(@ErrorOutput$)
MTPEntryName(@Output$, @ErrorOutput$)
DeviceName$ = Output$
Wend
EndIf
Procedure FileSearch(id, List Files.s(), dir.s)
Protected NewList CurDir.s()
SetMTPDirectory(id, dir, @ErrorOutput$)
If ExamineMTPDirectory(id, @ErrorOutput$)
While NextMTPDirectoryEntry(id, @ErrorOutput$)
MTPDirectoryEntryName(id, @Output$, @ErrorOutput$)
If MTPDirectoryEntryType(id, @ErrorOutput$) = #PBEx_MTP_Type_Directory And AddElement(CurDir())
CurDir() = dir + "\" + Output$
ElseIf MTPDirectoryEntryType(id, @ErrorOutput$) = #PBEx_MTP_Type_File And AddElement(Files())
Files() = dir + "\" + Output$
EndIf
Wend
EndIf
ForEach CurDir()
FileSearch(id, Files(), CurDir()) ; рекурсивный вызов
Next
EndProcedure
Define NewList Files.s()
Define id = 1
If Asc(DeviceName$) And OpenMTP(id, DeviceName$, @ErrorOutput$)
FileSearch(id, Files(), "\Внутренний общий накопитель\Movies")
CloseMTP(id, @ErrorOutput$)
Else
Debug ErrorOutput$
EndIf
ForEach Files()
Debug Files()
Next
CloseLibrary(PBEx_MTP)