2016-09-23 2 views
1

iOS 문서 디렉토리에 .jpg 이미지를 저장합니다. 파일을 쓸 수는 있지만 파일을 읽을 수는 있지만 파일을 삭제할 때는 같은 파일은 없다고하지만 같은 URL로 읽을 수는 없다고합니다.파일을 쓰거나 읽을 수 있지만 파일을 삭제할 수 없음 SWIFT

읽기 :

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
let path = NSURL(fileURLWithPath: paths[0] as String) 
let fullPath = path.appendingPathComponent(info["pi"] as! String) 

let data = NSData(contentsOf: fullPath!) 

삭제 :

let fileManager = FileManager.default 
fileManager.delegate = self 
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true) 
let path = NSURL(fileURLWithPath: paths[0] as String) 
let fullPath = path.appendingPathComponent(info["pi"] as! String) 

      do { 
       try fileManager.removeItem(atPath: "\(fullPath!)") 
      } catch { 
       print("\(error)") 
      } 

그것은 예외 :

Error Domain=NSCocoaErrorDomain Code=4 "“image_496251232.806566.jpg” couldn’t be removed." UserInfo={NSUnderlyingError=0x1758eb40 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}, NSFilePath=file:///var/mobile/Containers/Data/Application/269ADA58-6B09-4844-9FAA-AC2407C1D991/Documents/image_496251232.806566.jpg, NSUserStringVariant=(
    Remove 
)} 
+0

print fullPath pls –

+0

file : /// var/mobile/Containers/Data/Application/269ADA58-6B09-4844-9FAA-AC2407C1D991/Documents/image_496251232 .806566.jpg – Lenny1357

답변

4

귀하의 fullPath 변수는 (옵션) URL입니다. 직접 경로로 변환하지 않고

fileManager.removeItem(atPath: fullPath!.path) 

또는 더 나은, URL을 사용 : 파일 경로 문자열이 변환하려면 .path 재산이 아니라 문자열 보간을 사용

fileManager.removeItem(at: fullPath!) 

(그리고 제거하기 옵션 바인딩에 찬성하여 강제 언 래핑 중 ...

+0

당신은 객관적인 c eq uivalent 것인가? – Matt

관련 문제