Ich benutze Parsen, um einige Dateien auf das Gerät herunterzuladen, und alles ist gut, aber ich möchte dann die Datei aus dem Standard-Cache-Verzeichnis, in dem Pars sie speichert (/ Library/Caches/PFFileCache /) zu verschieben irgendwo stabiler sagen die Benutzer Dokumente Verzeichnis.Datei nach dem Herunterladen verschieben
Die lokalisierte Fehler ich bin immer ist:
Error: “7b54d8a0f1a64b710058d4408ca4d696_The%20Name%20of%20the%20Wind%2029-92.mp3” couldn’t be moved to “Documents” because either the former doesn't exist, or the folder containing the latter doesn't exist.
Aber ich bin sicher, dass beide existieren. Es kann etwas mit dem Namen zu tun haben, als wenn ich den Namen aus dem PFFile gepackt habe, hat er nicht den codierten% 20 im Dateinamen.
Dies ist mein Code-Block:
let cachedPFFile = object.object(forKey: "partAudio") as! PFFile
print(cachedPFFile)
let getCachedFilePath = cachedPFFile.getPathInBackground()
getCachedFilePath.waitUntilFinished()
let cachedFilePath = getCachedFilePath.result as! String
print(cachedFilePath)
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = String(describing: paths[0])
let saveDirectory = documentsDirectory.appending(cachedPFFile.name)
print(documentsDirectory)
print(saveDirectory)
let fileManager = FileManager.default
if fileManager.fileExists(atPath: saveDirectory) == false {
do {
try fileManager.moveItem(atPath: cachedFilePath, toPath: saveDirectory)
print("Move successful")
} catch let error {
print("Error: \(error.localizedDescription)")
}
}
Dies ist das gesamte Protokoll:
<PFFile: 0x608000458f00>
2017-02-20 18:42:35.430 ParseStarterProject-Swift[2260:55934] Warning: A long-running operation is being executed on the main thread.
Break on warnBlockingOperationOnMainThread() to debug.
/Users/Genie/Library/Developer/CoreSimulator/Devices/A2FB00CE-B018-4FDF-9635-35FD6678DF8D/data/Containers/Data/Application/BA7C112C-BECB-4734-8C67-A9CB84F0E1F3/Library/Caches/Parse/PFFileCache/7b54d8a0f1a64b710058d4408ca4d696_The%20Name%20of%20the%20Wind%2029-92.mp3
file:///Users/Genie/Library/Developer/CoreSimulator/Devices/A2FB00CE-B018-4FDF-9635-35FD6678DF8D/data/Containers/Data/Application/BA7C112C-BECB-4734-8C67-A9CB84F0E1F3/Documents/
file:///Users/Genie/Library/Developer/CoreSimulator/Devices/A2FB00CE-B018-4FDF-9635-35FD6678DF8D/data/Containers/Data/Application/BA7C112C-BECB-4734-8C67-A9CB84F0E1F3/Documents/7b54d8a0f1a64b710058d4408ca4d696_The Name of the Wind 29-92.mp3
Error: “7b54d8a0f1a64b710058d4408ca4d696_The%20Name%20of%20the%20Wind%2029-92.mp3” couldn’t be moved to “Documents” because either the former doesn't exist, or the folder containing the latter doesn't exist.
Ich bin durch diese verwirrt, weil sowohl die Datei und das neue Verzeichnis vorhanden ??
obwohl ich bin mir nicht sicher über die "file: /// Benutzer", da dies nicht funktioniert in Finder, muss den wahren Pfad "/ Benutzer" verwenden, wie kann ich "file: //" aus entfernen der Anfang der Schnur ??
Auch ich habe SO ohne Glück auf, wie man die% 20 in den Leerzeichen des Dateinamens hinzufügen keine der offensichtlichen Optionen scheint zu arbeiten.
Ich habe das ursprünglich versucht, aber es gab keinen Pfad zurück, also ging mit dem waituntilfinished(). Sie haben Recht, sehen Sie es sich noch etwas genauer an. Das Problem mit meinem erstellten Pfad zum Dokumentenordner war die Datei: // Wenn ich das entferne, verschiebt es die Datei – WanderingScouse
"aber es gab keinen Pfad zurück" Es übergibt den Pfad _in den Block_. – matt
Ich habe es gerade noch einmal probiert und es reicht es dem Block. Aus irgendeinem Grund hatte ich es in meinem Kopf, dass es nicht war ?? – WanderingScouse