From 144f66c13b6e020dee1a6b225a728967d7dc21a1 Mon Sep 17 00:00:00 2001 From: GRiker Date: Mon, 1 Jul 2013 03:04:32 -0600 Subject: [PATCH] Added mkdir() to libiMobileDevice --- .../devices/idevice/libimobiledevice.py | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/calibre/devices/idevice/libimobiledevice.py b/src/calibre/devices/idevice/libimobiledevice.py index ca6ed57a77..ba0f4d0f38 100644 --- a/src/calibre/devices/idevice/libimobiledevice.py +++ b/src/calibre/devices/idevice/libimobiledevice.py @@ -418,6 +418,14 @@ class libiMobileDevice(): if False: self._idevice_set_debug_level(DEBUG) + def mkdir(self, path): + ''' + Mimic mkdir(), creating a directory at path. Does not create + intermediate folders + ''' + self._log_location("'%s'" % path) + return self._afc_make_directory(path) + def mount_ios_app(self, app_name=None, app_id=None): ''' Convenience method to get iDevice ready to talk to app_name or app_id @@ -1007,6 +1015,27 @@ class libiMobileDevice(): self.log(" %s: %s" % (key, file_stats[key])) return file_stats + def _afc_make_directory(self, path): + ''' + Creates a directory on the device. Does not create intermediate dirs. + + Args: + client: (AFC_CLIENT_T) The client to use to make a directory + dir: (const char *) The directory's fully-qualified path + + Result: + error: AFC_E_SUCCESS on success or an AFC_E_* error value + ''' + self._log_location("%s" % repr(path)) + + error = self.lib.afc_make_directory(byref(self.afc), + str(path)) & 0xFFFF + if error: + if self.verbose: + self.log(" ERROR: %s" % self._afc_error(error)) + + return error + def _afc_read_directory(self, directory=''): ''' Gets a directory listing of the directory requested