What happens in Dropbox API for iOS (Swift) if I create a folder that already exists?

Viewed 18

The first time I do it, I want the folder created. The next time, should I check if folder already exists, or just do the create folder and assume nothing happens?

1 Answers

You can do this either way:

  1. Check if the folder exists before attempting to create it:
client.files.getMetadata(path: folderPath).response { response, error in
    if let _ = response {
        print("Something already exists at path.")
    } else if let error = error {
        switch error {
            case .routeError(let boxed, _, _, _):
                switch boxed.unboxed as Files.GetMetadataError {
                    case .path(let lookupError):
                        switch lookupError {
                            case .notFound:
                                print("Nothing was found at this path. Attempting to create folder...")
                                client.files.createFolderV2(path: folderPath).response { response, error in
                                    if let response = response {
                                        print("Created folder:")
                                        print(response)
                                    } else if let error = error {
                                        print("Error creating folder: ")
                                        print(error)
                                    }
                                }
                            default:
                                print("Some other error occurred.")
                                // handle accordingly...
                        }
                }
            default:
                print("Some other error occurred.")
                // handle accordingly...
            }
    }
}
  1. Always attempt to create the folder, and handle the error that occurs if it already exists:
client.files.createFolderV2(path: folderPath).response { response, error in
    if let response = response {
        print("Created folder:")
        print(response)
    } else if let error = error {
        print("Error creating folder: ")
        print(error)
        // handle accordingly...
    }
}
Related