recherche du chemin d'un dossier dans USER

Bonjour,


Actuellement, j'essaye de créer un petit jeu en swift pour découvrir la gestion des fichier/dossier.
j'ai réussi à  ouvrir et afficher le contenu d'un fichier .txt se trouvant dans un dossier "test". Le problème c'est que :

-soit je dois afficher la totalité du path ("User/me/Desktop/prog/swift/test/test1.txt").
-soit je peux utilisé une fonction qui trouve le dossier Desktop, Documents , Trash ect puis afficher le reste du path ("\(path_dir)/prog/swift/test/test1.txt").

Ce que je souhaite, c'est utilisé une fonction qui prends en paramètre le nom du dossier (test) et qui me renvoie le path jusqu'à  ce dossier.
je ne sais pas si il existe une fonction de ce type en swift, si ce n'est pas le cas auriez vous une idée pour réalisé celle ci ?

Ci dessous vous pouvez voir que j'utilise provisoirement le path de "Document" que je récupère avec dirPaths:

 



let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,
.UserDomainMask, true)
let docsDir = dirPaths[0] //recupère path document directory
var input_file = input() //recupère le nom du fichier
let text: String

input_file.removeAtIndex(input_file.endIndex.predecessor()) //supprime le dernier caractère de la chaine
let path = NSURL(fileURLWithPath: "\(docsDir)/test/\(input_file)") //recupère le fichier avec path entier

 

j'espère que vous comprendrez la source de mon problème.
Merci pour votre aide,

Bonne journée. icon_smile.gif


 


ps: c'est mon premier post sur ce forum, si vous avez des conseils sur le swift ou autre, je reste disponible !


Mots clés:

Réponses

  • CéroceCéroce Membre, Modérateur
    juin 2016 modifié #2
    Je ne comprends pas la question.

    Un path est une string, et tu peux donc la composer comme d'habitude, ou si tu préfères, utiliser -[NSString stringByAppendingPathComponent:].

    Ou peut-être est-ce plutôt ceci que tu recherches: (à  traduire en Swift)
    NSString *userTestDirPath = [@~/test/ stringByExpandingTildeInPath];
  • tabliertablier Membre
    juin 2016 modifié #3

    Je ne comprend pas non plus la question ! 


    Tu veux afficher le chemin absolu d'un dossier dont tu as juste le nom ? Que ce passe-t-il si plusieurs dossiers portent le même non ?


    Ou bien tu veux afficher le chemin d'accès d'un dossier dont tu as le chemin absolu ?


  • Donne-nous un exemple explicite !


  • Bonsoir,


    Excusez moi , je vais reformuler.


     


    j'entre en paramètre un nom de dossier (par exemple "test") , ce que souhaite faire, c'est chercher dans TOUT le dossier desktop (soit "/Users/mon_nom/Desktop/") ce fameux dossier test.


     


    Imaginons que j'ai deux dossiers dans mon desktop: "tmp" et "swift", mon dossier "test" se trouve dans "swift".


    c'est la qu'intervient ma vrai question : existe t-il un moyen pour regarder dans tout le desktop et dans tout les dossiers de celui ci si mon dossier "test" existe ?


     


    et si oui , est il possible de récupérer le chemin jusqu'à  lui comme le fait ce bout de code pour le dossier "Document":



    let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
    let docsDir = dirPaths[0] //recupère path document directory


  • Je ne comprend pas non plus la question ! 


    Tu veux afficher le chemin absolu d'un dossier dont tu as juste le nom ? Que ce passe-t-il si plusieurs dossiers portent le même non ?


    Ou bien tu veux afficher le chemin d'accès d'un dossier dont tu as le chemin absolu ?




    si j'ai plusieurs dossier du même nom je renvoie une erreur et oui je veux afficher le chemin absolu d'un dossier dont j'ai juste le nom.. ce n'est peut être pas possible, en tout cas avec une fonction swift .

  • awesomemanawesomeman Membre
    juin 2016 modifié #7


    Je ne comprends pas la question.


    Un path est une string, et tu peux donc la composer comme d'habitude, ou si tu préfères, utiliser -[NSString stringByAppendingPathComponent:].


    Ou peut-être est-ce plutôt ceci que tu recherches: (à  traduire en Swift)



    NSString *userTestDirPath = [@~/test/ stringByExpandingTildeInPath];



    Comment fonctionne NSString stringByAppendingPathComponent: ?


    je suis vraiment débutant en swift (je fais du C/C++) et je n'ai jamais touché à  la prog apple à  part pour du applescript.. 


  • Il suffit de faire une recherche récursive sur les dossiers contenus dans Desktop.

    Attention aux éventuels problèmes de boucle infinie avec les liens symboliques.


    Il faut que tu regardes NSFileManager, c'est la classe prévue pour ce genre de choses.
  • colas_    +1


     


    jette un oe“il sur cette application qui recherche dans la hiérarchie d'un dossier quelconque, tous les fichiers ayant la même extension.


     Répertoire.


  • Cool je vais regarder ça merci beaucoup !


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