 
 protocol URLProvider {
     func makeURL(filename: String) -> URL
-    func makeSubFolderURLForArchive(folderName: String) -> URL
 }
 
 struct DestinationURLProvider: URLProvider {

        url.appendPathComponent(filename, isDirectory: false)
        return url
    }
    
    /// Make a sub-folder path for the extracted files from an archive.
    ///
    /// - Parameter folderName: The name of the folder.
    /// - Returns: A URL to the folder.
    func makeSubFolderURLForArchive(folderName: String) -> URL {
        var url = downloadDirectory
        if let subdirectory = fileTypes.first(where: { $0.value.contains("zip") })?.key {
            url.appendPathComponent(subdirectory, isDirectory: true)
        }
        url.appendPathComponent(folderName, isDirectory: true)
        return url
    }
}

/// Creates a URL such as `{portalURL}/sharing/rest/content/items/{itemIdentifier}/data`

    let filenameData = outputPipe.fileHandleForReading.readDataToEndOfFile()
    return String(data: filenameData, encoding: .utf8)!.trimmingCharacters(in: .whitespacesAndNewlines)
}

/// Count files in an archive.
///
