Lister fichiers d'une Directory

Bonjour,


Encore une fois je patauge !!


 


J'ai beaucoup de Pb de compréhension avec le "FileManager"


 


Je cherche à  lister les fichiers d'une directory et de les mettre dans un "PopupButton"


 


Ma directory ne se situe pas dans "//user/Documents" mais à  un autre endroit dans "users"


 


je sais changer de "directory current", mais c'est après que çà  pèche.


 


quelqu'un pourrait-il m'aiguiller ?


Réponses

  • LarmeLarme Membre

    contentsOfDirectoryAtPath:error: ?


  • LexxisLexxis Membre
    juin 2017 modifié #3

    Salut,


    as tu essayé d'utiliser l'API enumeratorAtPath ou contentsOfDirectoryAtPath ?


     


    Grillé par Larme




  • contentsOfDirectoryAtPath:error: ?




     




    Salut,


    as tu essayé d'utiliser l'API enumeratorAtPath ou contentsOfDirectoryAtPath ?


     


    Grillé par Larme




    Bonjour à  vous deux


     


    Vos réponses sont surement exact mais pour moi leur utilisation est encore trouble.


     


    il n'y a pas mieux qu'un petit exemple à  l'appui.

  • LarmeLarme Membre

    Pourrais-tu te présenter dans la section du forum adéquat ?


    Je ne sais pas quel est ton niveau en Swift (qui semble débutant), mais en programmation tout court, du coup, cela nous aiderait pour adapter nos réponses.


     


    Pour contentsOfDirectyAtPath, il y'a juste un throw/catch qui est un coup à  avoir et à  savoir coder, sinon, cela ne me semble pas difficile.


     


    Quel est ton code actuel ?


  • PatyomPatyom Membre
    juin 2017 modifié #6


    Pourrais-tu te présenter dans la section du forum adéquat ?


    Je ne sais pas quel est ton niveau en Swift (qui semble débutant), mais en programmation tout court, du coup, cela nous aiderait pour adapter nos réponses.


     




     


    C'est vrai je n'ai pas de notion en prog Objective-C ou Swift mais j'ai un passé en prog Xojo (Realbasic, grace à  Aligator).


     


    c'est surtout pour la syntaxe en Swift 3 que j'ai du mal, il a tant d'instruction spécifiques on s'y perd vite


  • Joanna CarterJoanna Carter Membre, Modérateur
    juin 2017 modifié #7

    Bien que c'est en anglais (voire américain) il y a un nouveau bouquin sur la version la plus récente de Swift https://itunes.apple.com/us/book/intro-to-app-development-with-swift/id1118575552?mt=11


  • j'ai essayer de trouver un peu la solution dans ce code :




    import Foundation

    var documentDirURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
    documentDirURL.deleteLastPathComponent()
    let suitepath = "MonDomaine/PROGS-SWIFT/CE-Journalier"
    documentDirURL.appendPathComponent(suitepath)

    // //
    // Read data from documentDirURL (file:///Users/PATRICK/MonDomaine/PROGS-SWIFT/CE-Journalier)

    var filesList: [URL] = []
    var showInvisibles = false

    // Recherche des fichiers
    filesList = liste(folder: documentDirURL) // *** Error = use of unresolved identifier 'liste' ***

    // Vérification
    for file in filesList {
    print(file.pathComponents.last)
    }

    // fonction de recherche de fichiers
    func liste(folder: URL) -> [URL] {
    let fileManager = FileManager.default
    do {
    let contents = try fileManager.contentsOfDirectory(atPath: folder.path)
    let urls = contents
    .filter { return showInvisibles ? true : $0.characters.first != "." }
    .map { return folder.appendingPathComponent($0) }
    return urls
    } catch {
    return []
    }
    }


    J'arrive à  le faire tourner dans Playground malgré l'erreur au niveau de la ligne  "Recherche de fichiers" mais dans un prog "Command Lines Tools", il plante carrément.


     


    Qu'en pensez-vous ?

  • DrakenDraken Membre
    juin 2017 modifié #9

    Playground, "command lines tools" ? T'aimes bien les trucs exotiques, non ?


     


    Je n'ai pas souvenir que l'on puisse utiliser un composant graphique comme un PopupButton, avec "Command Lines Tools". Une application console n'a pas grand chose à  voir avec une interface graphique.


Connectez-vous ou Inscrivez-vous pour répondre.