Описание функции


MTPDirectoryEntryName

Получает следующий элемент файловой системы - папку или файл, используется в цикле после вызова ExamineMTPDirectory()

MTPDirectoryEntryName(ID, @Output$, @ErrorOutput$)

Параметры

ID Идентификатор подключения
@Output$ Указатель на строку, куда будет вставлено следующее имя папки или файла
@ErrorOutput$ Указатель на строку содержащую текст ошибки, размером не менее 128 символов включая Null.
Или 0 если нет необходимости получить текстовое описание ошибки в случае ошибки.

Возвращаемое значение

Успех:Возвращает: 1, если операция успешна
Ошибка:Возвращает: 0

См. также

ExamineMTPDirectory, MTPDirectoryEntryType

Пример

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)