     
     
     /**
-     Recursive function to expand directory contents and parse them into ProcessedFilePath structs.
+     Expand directory contents and parse them into ProcessedFilePath structs.
      
      - parameter directory: Path of folder as NSURL.
      

            while let filePathComponent = enumerator.nextObject() as? String {
                let path = directory.appendingPathComponent(filePathComponent)
                let filePath = path.path
                let directoryName = directory.lastPathComponent

                var isDirectory: ObjCBool = false
                fileManager.fileExists(atPath: filePath, isDirectory: &isDirectory)
                if !isDirectory.boolValue {
                    let fileName = (directoryName as NSString).appendingPathComponent(filePathComponent)
                    let processedPath = ProcessedFilePath(filePathURL: path, fileName: fileName)
                    processedFilePaths.append(processedPath)
                }


internal class ZipUtilities {
    
    /*
     Include root directory.
     Default is true.
     
     e.g. The Test directory contains two files A.txt and B.txt.
     
     As true:
     $ zip -r Test.zip Test/
     $ unzip -l Test.zip
        Test/
        Test/A.txt
        Test/B.txt
     
     As false:
     $ zip -r Test.zip Test/
     $ unzip -l Test.zip
        A.txt
        B.txt
    */
    let includeRootDirectory = true

    // File manager
    let fileManager = FileManager.default

