Listing Directories

Listing Directories —

Synopsis


#include <canon.h>


int         canon_int_directory_operations  (Camera *camera,
                                             const char *path,
                                             canonDirFunctionCode action,
                                             GPContext *context);
enum        canonDirFunctionCode;
int         canon_int_list_directory        (Camera *camera,
                                             const char *folder,
                                             CameraList *list,
                                             const canonDirlistFunctionBits flags,
                                             GPContext *context);
enum        canonDirlistFunctionBits;

Description

Details

canon_int_directory_operations ()

int         canon_int_directory_operations  (Camera *camera,
                                             const char *path,
                                             canonDirFunctionCode action,
                                             GPContext *context);

Creates or removes a directory in camera storage.

camera : Camera to work on
path : Path to directory on which to operate
action : canonDirFunctionCode (either DIR_CREATE or DIR_REMOVE)
context : context for error reporting
Returns : gphoto2 status code. GP_OK on success, otherwise status from canon_serial_error(), GP_ERROR if USB operation fails, GP_ERROR_CORRUPTED_DATA if the camera response is not the expected length, GP_ERROR_BAD_PARAMETERS if action is invalid.

enum canonDirFunctionCode

typedef enum {
	DIR_CREATE = 0,
	DIR_REMOVE = 1
} canonDirFunctionCode;

Software code to pass to canon_int_directory_operations().

DIR_CREATE Create the specified directory
DIR_REMOVE Remove the specified directory

canon_int_list_directory ()

int         canon_int_list_directory        (Camera *camera,
                                             const char *folder,
                                             CameraList *list,
                                             const canonDirlistFunctionBits flags,
                                             GPContext *context);

Gets the directory tree of a given flash device, unsorted and with a few missing features (such as correct sorting of files and correctly associating files with each other).

Implicitly assumes that uint8_t[] is a char[] for strings.

camera : Camera to access
folder : Folder on the camera to list
list : Returns list of folders in this directory
flags : canonDirlistFunctionBits specifying to list files, folders, or both
context : context for error reporting
Returns : a gphoto2 status code. list will contain a list of folders (directories) contained in this folder. Files will be added to the internal gphoto2 file system only if they are image or movie files.

enum canonDirlistFunctionBits

typedef enum {
	CANON_LIST_FILES   = 2,
	CANON_LIST_FOLDERS = 4
} canonDirlistFunctionBits;

Software bits to pass in "flags" argument to canon_int_list_directory(), telling what to list. Bits may be ORed together to list both files and folders.

CANON_LIST_FILES List files
CANON_LIST_FOLDERS List folders