ZipFoundation cannot unarchive the file because it can't be found

669 Views Asked by At

I'm trying to unzip some archives in a macOS app using the ZipFoundation library. The files are located on the desktop, I've confirmed the paths are correct and that the file exists.

I have this code:

let fileManager = FileManager()
                        
    let sourceURL = URL(fileURLWithPath: monetizeZiPFile.absoluteString)
    var destinationURL = URL(fileURLWithPath: dirBuildURL.absoluteString)
    destinationURL.appendPathComponent("directory")
                        
    do {
        try fileManager.createDirectory(at: destinationURL, withIntermediateDirectories: true, attributes: nil)
        try fileManager.unzipItem(at: monetizeZiPFile, to: dirBuildURL)
   } catch {
        print("Extraction of ZIP archive failed with error:\(error)")
   }

I receive this error for the unzipItem method:

CFURLResourceIsReachable failed because it was passed an URL which has no scheme

Extraction of ZIP archive failed with error:Error Domain=NSCocoaErrorDomain Code=260 
"The file “00-monetize.zip” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/xxxxxxxx/Desktop/Componize-Builds/DOC-8621/Monetize/00-monetize.zip}

Do I have to be within the project directories for ZipFoundation to work?

1

There are 1 best solutions below

0
Amir Omidi On

For paths, do not use absoluteString, use path.