Verifier si une image existe dans la librairie

Dans mon application , j'ai voulu verifier si une image existait deja ou pas dans la librairie avec le code suivant :





- (void)viewDidLoad

{

[super viewDidLoad];



BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:@ruani.jpg];



if (fileExists == 0) {





UIAlertView *InfoAlert = [[UIAlertView alloc] initWithTitle:@Info App message:@Shake for save the image ! delegate:nil cancelButtonTitle:@OK otherButtonTitles:nil];

[InfoAlert show];



}

if (fileExists == 1) {

UIAlertView *InfoAlert = [[UIAlertView alloc] initWithTitle:@Info App message:@Image already saved ! delegate:nil cancelButtonTitle:@OK otherButtonTitles:nil];

[InfoAlert show];

} }



Si vous pouvez me dire si mon code est exact ou pas ca m'aiderait beuacoup !

Merci d'avance!

Réponses



  • Dans mon application , j'ai voulu verifier si une image existait deja ou pas dans la librairie avec le code suivant :





    - (void)viewDidLoad

    {

    [super viewDidLoad];



    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:@ruani.jpg];



    if (fileExists == 0) {





    UIAlertView *InfoAlert = [[UIAlertView alloc] initWithTitle:@Info App message:@Shake for save the image ! delegate:nil cancelButtonTitle:@OK otherButtonTitles:nil];

    [InfoAlert show];



    }

    if (fileExists == 1) {

    UIAlertView *InfoAlert = [[UIAlertView alloc] initWithTitle:@Info App message:@Image already saved ! delegate:nil cancelButtonTitle:@OK otherButtonTitles:nil];

    [InfoAlert show];

    } }



    Si vous pouvez me dire si mon code est exact ou pas ca m'aiderait beuacoup !

    Merci d'avance!








    1- Utilise les balises "code". Comme çà  c'est illisible...

    2- Deux posts et pas une présentation??? Un petit tour ici

    3- Tu utilises ARC ? Parce que les "alloc - init" sans "release" çà  va pas le faire...
  • CéroceCéroce Membre, Modérateur


    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:@ruani.jpg];




    C'est là  que se situe le problème: quel est le chemin exact du fichier ? De toute façon, il ne faut pas employer cette technique.



    Que veux-tu faire exactement? Utiliser une image qui fait partie de ton application ou accéder à  une image stockée dans l'album photo ?
  • En fait , je veux voir si l'image est dans la librairie photo , si oui , j'envoie une alerte du genre : La photo que vous voulez enregistrer existe deja dans votre librairie. si non , j'envoie un alert du genre : Vous pouvez enregistrer la photo.
  • CéroceCéroce Membre, Modérateur
    juillet 2012 modifié #5
    ça n'est pas si simple que ça. Une photo dans la bibliothèque photo n'est pas référencée par son nom, pour une raison évidente: il peut y avoir conflit. En utilisant ALAsset et compagnie, ce qui est renvoyé est une asset URL, qui est fabriquée à  partir d'un numéro unique (ça calcule sans doute une empreinte).



    Donc, on peut ajouter une photo à  la lib, et mémoriser l'asset URL, puis réclamer la photo qui correspond à  telle asset URL, mais il n'y a pas de moyen simple de savoir si une photo est déjà  dans la bibliothèque.



    Est-ce que voir si une image est déjà  présente ne pourrait pas être fait au niveau de ton appli ? De toute façon, ça ne fait que déplacer le problème: identifier une photo par le nom du fichier n'est pas fiable.
  • Si , je pense que voir si une image est deja prensente est le mieux
  • Malheureusement, je rejoins l'avis de Céroce.



    En effet, il n'est pas possible d'accéder aux fichiers contenus dans la librairie photo de l'utilisateur. Ainsi, tu ne peux vérifier, en passant par le nom du fichier, si une image y est déjà  présente.



    Une voie possible serait de vérifier (via ALAsset) en comparant les métadonnées. C'est un peu tiré par les cheveux, mais ça pourrait marcher.



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