Récupérer la date de création ou de modification du fichier
J'utilise ce bout de code pour essayer de récupérer la date de dernière modification d'un fichier:
NSError *error = nil;
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath: myFilePath error:&error];
if (attributes != nil) {
NSDate *date = (NSDate*)[attributes objectForKey: NSFileModificationDate];
NSLog(@"Date modiifed: %@", [date description]);
}
else {
NSLog(@"Not found");
}
Cela fonctionne bien pour les fichiers dans le regroupement principal, mais pas si le fichier est situé dans un sous-répertoire de l'application un dossier de documents, avec myFilePath
comme ceci:
/Users/User/Library/Application Support/iPhone Simulator/6.0/Applications/The App ID Number/Documents/mySubdirectory/My Saved File
Il retourne "non trouvé".
Je sais que le fichier est là, comme je peux l'afficher dans le finder. J'ai aussi essayé de supprimer les espaces dans le nom du fichier, mais cela n'a eu aucun effet.
Le journal des erreurs, dit aucun fichier ou répertoire, de sorte qu'il ressemble à quelque chose doit avoir mal tourné quand j'ai essayé de copier le fichier dans le répertoire du document.
Étrange c'est que, d'une itération dans le document sous-répertoire contentsOfDirectoryAtPath
montre le fichier.
J'ai essayé de coder en dur le chemin d'accès et la récupérer par programme, avec:
*myFolder = [documentsDirectory stringByAppendingPathComponent:@"myFolder"];
*myFilePath = [myFolder stringByAppendingPathComponent:theFileName];
N'importe qui peut voir où je vais mal?
source d'informationauteur Robert
Vous devez vous connecter pour publier un commentaire.
De l'essayer. J'ai eu le même problème et l'a résolu avec quelque chose comme suivant:
espère que cela a aidé 😉
Swift 3 solution:
Ici est une Swift comme solution de @zvjerka24 réponse:
Si vous obtenez l'erreur:
Vous pouvez essayer de résoudre ce problème en ajoutant "fichier:///" de votre NSString chemin du fichier avant de le convertir à NSURL, cela a fonctionné dans mon cas.
Pouvez aussi le faire: