From 4a9f1c098cdc0e96ceac5bc3bbf6566cad32d7bd Mon Sep 17 00:00:00 2001 From: Martin Szulecki Date: Thu, 2 Oct 2014 16:15:48 +0200 Subject: afc: Implement afc_remove_path_and_contents() for recursive deletion Only available on iOS 6 and later. --- src/afc.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/afc.c') diff --git a/src/afc.c b/src/afc.c index 50ac5bf..2e2d62c 100644 --- a/src/afc.c +++ b/src/afc.c @@ -998,6 +998,30 @@ afc_error_t afc_set_file_time(afc_client_t client, const char *path, uint64_t mt return ret; } +afc_error_t afc_remove_path_and_contents(afc_client_t client, const char *path) +{ + uint32_t bytes = 0; + afc_error_t ret = AFC_E_UNKNOWN_ERROR; + + if (!client || !path || !client->afc_packet || !client->parent) + return AFC_E_INVALID_ARG; + + afc_lock(client); + + /* Send command */ + ret = afc_dispatch_packet(client, AFC_OP_REMOVE_PATH_AND_CONTENTS, path, strlen(path)+1, NULL, 0, &bytes); + if (ret != AFC_E_SUCCESS) { + afc_unlock(client); + return AFC_E_NOT_ENOUGH_DATA; + } + /* Receive response */ + ret = afc_receive_data(client, NULL, &bytes); + + afc_unlock(client); + + return ret; +} + afc_error_t afc_dictionary_free(char **dictionary) { int i = 0; -- cgit v1.1-32-gdbae