Récuperation du nom de fichier

23:43 modifié dans API AppKit #1
Salut

Quelqu'un saurait-il comment faire pour récupérer le nom du fichier que l'on dépose sur une application lors de son ouverture??
merci

Réponses

  • BaardeBaarde Membre
    23:43 modifié #2
    Tu ajoutes un nouveau Document Type à  ton application avec **** comme OS Type. N'importe quel fichier sera reconnu comme document. Après il suffit d'utiliser la méthode delegate de NSApplication :
    - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
    
  • ClicCoolClicCool Membre
    23:43 modifié #3
    Je pense que SpiderIncognito voulait peut-être parler du nom d'un fichier ayant déclenché l'ouverture d'une application après avoir été glissé dessus dans le finder. non ?

    A l'ouverture de ton appli, tu trouves ces noms de fichiers dans les arguments (argv[]) que ta méthode main récupère et envoie à  la fonction NSApplicationMain().

    Sinon, si les fichiers ont été glissés sur ton appli alors qu'elle est déjà  lancée, c'est par les Apple Events que tu récupères les noms des fichiers.
  • BaardeBaarde Membre
    23:43 modifié #4
    Oui, mais pour que le fichier puisse être glissé sur l'application, il faut quand même qu'elle le reconnaissance comme document, non ?
  • ClicCoolClicCool Membre
    décembre 2004 modifié #5
    Ah oui, tu as parfaitement raison ;)

    C'est le silence Radio de SpiderIncognito qui me faisait penser qu'il attendait autre chose.
  • 23:43 modifié #6
    salut,

    non je ne dors pas... mais j'étais occupé à  autres choses.
    Je vais essayez le ArgV, c est bien d'un glisser/Déposer d'un fichier de l'appli sur l'appli elle même dont je parlais.
    Je vais essyer et vous tiens au courant

    Merci
  • 23:43 modifié #7
    peut etre ai je mal compris :)
    voila ce que j ai écris :
    int main(int argc, const char *argv[])
    {
    id pool = [NSAutoreleasePool new];
    [[NSString stringWithFormat:@%c,argv] writeToFile:@/temp.txt atomically:YES];
    [pool release];
    return NSApplicationMain(argc, argv);
    }
    et ce que j obtiens dans le fichier temp.txt :
    x
    doit y avoir un truc...
  • BruBru Membre
    décembre 2004 modifié #8
    La méthode déléguée - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename fonctionne en toute circonstance, que ce soit au démarrage de l'appli que lors d'un drag'n drop d'un fichier sur l'icône de l'appli alors qu'elle est déjà  ouverte...

    C'est la méthode de NLBDC qui est la meilleure (elle récupère le chemin du fichier déposé, et après un coup de lastPathComponent de NSString, on peut récupérer le nom du fichier) !

    .
  • 23:43 modifié #9
    Super,

    la oui cela fonctionne, je récupère bien le nom du fichier en mettant mon controleur delegué de NSFile's Owner et en implémentant la fonction - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename

    Merci !!!
  • ClicCoolClicCool Membre
    23:43 modifié #10
    dans 1104399766:

    La méthode déléguée - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename fonctionne en toute circonstance, .../...


    au démarrage aussi ?
    Ah ben oui ça marche !, depuis le temps je m'en étais jamais rendu compte !!

    Merci Bru  :)
Connectez-vous ou Inscrivez-vous pour répondre.