newfolder.c

00001 
00023 #include "common.h"
00024 #include "pathutils.h"
00025 #include <libgen.h>
00026 
00027 void newfolder_function(char *);
00028 void newfolder_command(int,char **);
00029 
00030 extern LIBMTP_folder_t *folders;
00031 extern LIBMTP_file_t *files;
00032 extern LIBMTP_mtpdevice_t *device;
00033 
00034 void newfolder_command (int argc, char **argv)
00035 {
00036   uint32_t newid;
00037   
00038   if(argc != 3) {
00039     printf("Usage: newfolder name <parent> <storage>\n");
00040     printf("  parent = parent folder or 0 to create the new folder in the root dir\n");
00041     printf("  storage = storage id or 0 to create the new folder on the primary storage\n");
00042     return;
00043   }
00044   
00045   newid = LIBMTP_Create_Folder(device, argv[1], atol(argv[2]), atol(argv[3]));
00046   if (newid == 0) {
00047     printf("Folder creation failed.\n");
00048   } else {
00049     printf("New folder created with ID: %d\n", newid);
00050   }
00051 }
00052 
00053 void
00054 newfolder_function(char * path)
00055 {
00056   printf("Creating new folder %s\n",path);
00057   char * parent = dirname(path);
00058   char * folder = basename(path);
00059   int id = parse_path (parent,files,folders);
00060   int newid = LIBMTP_Create_Folder(device, folder, id, 0);
00061   if (newid == 0) {
00062     printf("Folder creation failed.\n");
00063     LIBMTP_Dump_Errorstack(device);
00064     LIBMTP_Clear_Errorstack(device);
00065   } else {
00066     printf("New folder created with ID: %d\n", newid);
00067   }
00068 }
00069 

Generated on Tue Apr 24 12:19:16 2012 for libmtp by  doxygen 1.4.7