일부 파일을 장치로 다운로드하기 위해 구문 분석을 사용하면 모든 것이 좋지만 파스가 저장하는 기본 캐시 디렉토리 (/ Library/Caches/PFFileCache /)에서 다음 파일로 이동하려고합니다. 어딘가에 더 안정 사용자 문서 디렉토리라고.다운로드 후 파일 이동
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.
하지만 모두가 존재 확신 :
내가 무엇입니까 지역화 된 오류입니다. 그것은 파일 이름에 인코딩 된 % 20이없는 PFFile의 이름과 같은 이름과 관련이있을 수 있습니다.
이 내 코드 블록 :
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)")
}
}
이 전체 로그입니다 : 파일 및 새 디렉터리가 모두 존재하기 때문에
<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.
나는이 혼란하고는 ??
"file : /// Users"에 대해 확실하지 않지만이 기능은 찾기에서 작동하지 않으므로 실제 경로 "/ Users"를 사용해야합니다. "file : //"을 어떻게 제거 할 수 있습니까? 문자열의 시작 ??
또한 파일 이름의 공백에 % 20을 추가하는 방법에 대해서는 별다른 옵션이없는 것 같습니다.
나는 이것을 원래 시도했지만 경로를 반환하지 않으므로 waituntilfinished()와 함께 갔다. 당신은 옳았습니다. 좀 더 자세히 살펴보십시오. document 폴더에 대한 내 생성 된 경로 문제는 파일입니다. // 파일을 잘 이동하면이 파일을 잘 옮깁니다. – WanderingScouse
"하지만 경로를 반환하지 않았습니다."이것은 경로 _into를 넘겨줍니다. – matt
방금 다시 시도했지만 블록으로 넘겨줍니다. 웬일인지 나는 그것을 가지지 않고 있었던 나의 머리에서 그것을 가지고 있었다? – WanderingScouse