示例#1
0
// 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);
}
示例#2
0
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;
	}
}
示例#3
0
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;
}
示例#4
0
/*
引数例:
"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;
}