// Android bool SCFileManager_makeDirectory(const int type, std::string & dir) { dir.clear(); if (type == 0) { // the resources directory is "" in Android return true; } std::string sPackageName = Client::currentClient()->getPackageName(); std::string path = "/sdcard/.beva/" + sPackageName; if (!mkdir_(path)) { path = "/data/data/" + sPackageName; } switch (type) { case 1: path.append("/docs"); break; case 2: path.append("/caches"); break; case 4: path.append("/tmp"); break; default: break; } dir.assign(path); return mkdir_(dir); }
bool FileManager::mkdir(const URL &sDir) { if (!sDir.isAbsolutePath()) { SCError("cannot mkdir: %s", sDir.c_str()); return false; } URL dir(sDir); dir.trim(); if (dir.empty() || isExists(dir)) { return true; } // create upper directory if (!mkdir(URL(dir).deleteLastPathComponent())) { SCError("failed to create upper dir: %s", sDir.c_str()); return false; } if (mkdir_(dir)) { return true; } else { SCError("failed to mkdir: %s", dir.c_str()); return false; } }
char *comando(char *cmd, char **argv, char* output,int rs[2], FD *ph,FD *hp){ int argc=0; interprete(cmd, &argc, argv); strcpy(output, ""); if (argc > 0) { if(!strcmp(argv[0], "ls")) { ls(argc, argv,output); } else if(!strcmp(argv[0], "cat")) { char *c = cat(argc, argv); if(c == NULL) { sprintf(output,"-fssh: %s/%s: No existe el archivo\n", argv[1],argv[2]); } else { strcpy(output,c); return c; } } else if(!strcmp(argv[0], "cp")) { cp(argc, argv,output); } else if(!strcmp(argv[0], "mv")) { mv(argc, argv, output); } else if(!strcmp(argv[0], "find")) { find(argc,argv,output,rs,ph,hp); } else if(!strcmp(argv[0], "rm")) { rm(argc, argv,output); } else if(!strcmp(argv[0], "mkdir")) { output = mkdir_(argc, argv,output); } else if(!strcmp(argv[0], "rmdir")) { rmdir_(argc, argv,output); } else if(!strcmp(argv[0], "quit")) { exit(0); } else { sprintf(output,"-fssh: %s: No existe el comando\n",argv[0]); } } else { sprintf(output, "-fssh: %s: Es un directorio\n",argv[1]); } return output; }
/* 引数例: "C:\\users\\tmp.0001.txt" "../..//users///tmp.0001.txt" "C://users///tmp.0001.txt" "C:\\users" "/home" "C:\\users/" "/home/" "C:\\users\\tmp.0001.txt" "/home/tmp.0001.txt" "C:/Users/public/Desktop/一時的フォルダ→すぐ削除する" */ int main(int argc ,const char* argv[]) { if (argc == 1) { usage_(argv[0]); return 0; } else if (argc == 2) { /* 注:パスはutf8で格納する */ #ifdef _WIN32 cppl::file_system_path pa(osapi::utf8_from_cp932(argv[1])); #else cppl::file_system_path pa(argv[1]); #endif // cppl::file_system_path pa(argv[1]); return check_file_or_dir_( pa ); } else if (argc == 3 && std::string("-md") == argv[1]) { /* 注:パスはutf8で格納する */ #ifdef _WIN32 cppl::file_system_path pa(osapi::utf8_from_cp932(argv[2])); #else cppl::file_system_path pa(argv[2]); #endif return mkdir_( pa ); } else if (argc == 4 && std::string("-rn") == argv[1]) { /* 注:パスはutf8で格納する */ #ifdef _WIN32 cppl::file_system_path pa1(osapi::utf8_from_cp932(argv[2])); cppl::file_system_path pa2(osapi::utf8_from_cp932(argv[3])); #else cppl::file_system_path pa1(argv[2]); cppl::file_system_path pa2(argv[3]); #endif return rename_( pa1 , pa2 ); } std::cerr << "Error:Bad argument.\n"; return 1; }