Abrufen von Datei-Erstellungs-oder änderungsdatum
Ich bin mit diesem Stück code, um zu versuchen, um die Letzte änderungsdatum der Datei:
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");
}
Dies funktioniert auch für Dateien im Haupt-bundle aber nicht, wenn die Datei liegt in einem Unterverzeichnis von app Dokumenten-Ordner, mit myFilePath
wie diese:
/Users/User/Library/Application Support/iPhone Simulator/6.0/Applications/The App ID Number/Documents/mySubdirectory/My Saved File
Hält Rückkehr "nicht gefunden".
Ich weiß, die Datei ist da, ich kann es mit dem finder. Ich habe auch versucht, das entfernen der Leerzeichen in den Namen der Datei, aber das hatte keinen Effekt.
Error-log sagt keine solche Datei oder Verzeichnis, so wie es aussieht muss etwas gegangen falsch, wenn ich versuchte, kopieren Sie die Datei in das document-Verzeichnis.
Komisch ist, dass das Durchlaufen des Dokuments sub-directory mit contentsOfDirectoryAtPath
zeigt die Datei als anwesend.
Ich habe versucht, hart codierte Pfad und abrufen programmgesteuert, mit:
*myFolder = [documentsDirectory stringByAppendingPathComponent:@"myFolder"];
*myFilePath = [myFolder stringByAppendingPathComponent:theFileName];
Kann jeder sehen, wohin ich gehe falsch gemacht?
Entschuldigung; Sie stellen den rest der Weg, die ich aus Gründen der Kürze entfernt:
/6.0/Applications/The App ID Number/
. Ich habe bearbeitet der Frage-und re-eingefügt.Ist die Datei in Ihrem xcode-Projekt? programmgesteuert erstellt?
Können: Es war. Ich dann es gelöscht aus dem Ordner und eine andere Datei manuell, um zu sehen, wenn, dass würde einen Unterschied machen.
Sherlock Holmes: "Wenn man das Unmögliche eliminiert , was bleibt, jedoch unwahrscheinlich, muss die Wahrheit sein." Sie sagen, Sie sehen können die Datei im Finder anzeigen, so überprüfen Sie Ihre Datei-Pfad. Scheint nichts falsch mit Ihrem code anders.
InformationsquelleAutor Robert | 2012-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen. Ich hatte dasselbe problem und gelöst mit sowas weiter:
hoffe es hat geholfen 😉
NSURL *fileURL = [NSURL URLWithString:fullPathURLString]; NSDate *fileDate; [fileURL getResourceValue:&fileDate forKey:NSURLContentModificationDateKey error:&error]; if (!error) { NSLog(@"file modification date = %@", fileDate); }
, und immer noch null.Ja, die Dateien sind vorhanden, obwohl die Dateinamen enthalten Leerzeichen, die ersetzt wurden durch
%20
. Könnte dass das problem verursachen?Hier ist der error log:
CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: /Users/User/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/A008CF0F-9EE1-42B5-921C-598FC8420279/Documents/downloads/Diagrams/8101-8101N%20Harsco%20Week%20.doc
Bitte akzeptiere keine Antworten, es sei denn, Sie wirklich Ihr problem lösen, sonst ist es ein Hinweis für andere Nutzer, das ist in der Tat stellt eine Lösungen. Wo es vielleicht nicht der Fall sein.
Es ist eine gute Antwort, jedoch solltest du für Fehler mit der return-Wert von
[NSURL getResourceValue::]
und nicht die Existenz derNSError
Objekt.InformationsquelleAutor zvjerka24
Swift 3 Lösung:
InformationsquelleAutor coldfire
Hier ist eine Rasche Lösung wie von @zvjerka24 Antwort:
InformationsquelleAutor FBente
Wenn Sie die Fehlermeldung erhalten:
Können Sie versuchen, dies zu lösen, indem Sie "file:///", um Ihre NSString Datei Pfad vor dem konvertieren es zu NSURL, es funktionierte in meinem Fall.
-fileURLWithPath:
anstattfile:///
Präfix.InformationsquelleAutor Tonnie
Können das auch tun:
InformationsquelleAutor Alexandre G