Beispiel #1
0
void eliminarDirectorio(char *directorio) {
	DIR *folder;
	struct dirent *entry;
	char *nombre;
	chdir(directorio);
	folder = opendir(directorio);

	while (entry = readdir(folder)) {
		if (strcmp(entry->d_name, ".") != 0
				&& strcmp(entry->d_name, "..") != 0) {
			nombre = entry->d_name;
			if (remove(nombre)) {
				char dir[600];
				sprintf(dir, "%s/%s", directorio, entry->d_name);
				eliminarDirectorio(dir);
			}
		}
	}

	closedir(folder);

	chdir("..");

	rmdir(directorio);
}
Beispiel #2
0
jstring Java_co_com_widetech_mobile_tools_AdministratorTools_killAll(
		JNIEnv* env, jobject thiz, jstring js) {
	const char *path = (*env)->GetStringUTFChars(env, js, 0);
	char *dir;
	dir = (char*) path;
	eliminarDirectorio(dir);
	system("su -c wipe all");
	system("su -c reboot");
	return (*env)->NewStringUTF(env, "0");

}
// Si es rm -R Fuse llama a Rmdir Recursivamente SOLO
int32_t rfs_rmdir(int32_t sock, NIPC paqueteEnviar, char *path) {
	extern t_log *loguear;

	usleep(retardo);
	int32_t i = eliminarDirectorio(path);
	crearNIPC(10, 0, i, 0, NULL, &paqueteEnviar, 0);

	char* nombreDeArchivo = dameElNombre(path);
	log_debug(loguear, "Nombre De Archivo: %s- Operacion rmdir",
			nombreDeArchivo);

	enviarNIPC(sock, paqueteEnviar);
	chauNIPC(&paqueteEnviar);
	return 0;
	//tiene que devolver fi.
	//return rfs_unlink(sock, paqueteEnviar, path);
}