Problemas con rmdir.

Started by Fede, January 23, 2011, 09:09:03 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fede

Buenaaaaaaas.  ;D

Pues me pasa los siguiente:

Esto no funciona:


import "mod_say";
import "mod_file";
process Main()


begin
  say(mkdir("./pa"));
  cd("./pa");
  glob("");
  glob("*.*");
  cd("..");
  say(rmdir("./pa"));
  exit();
end



Y esto sí...



import "mod_say";
import "mod_file";
process Main()


begin
  say(mkdir("./pa"));
  cd("./pa");
  glob("");
  glob("*.*");
  cd("..");
  glob("");  // Esta es la diferencia.
  say(rmdir("./pa"));
  exit();
end



¿Debo de hacer un glob("") cuando salgo de un directorio antes de borrarlo si antes he hecho un glob("loquesea")?

Según pone en la wiki rmdir no borrará un directorio en uso. ¿Se supone que glob lo usa aunque no esté en él?


Gracias y saludos.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

SplinterGU

claro, en windows es asi... podria resolverlo, pero esto haria mas lenta la primera lectura del glob e incluso si hacemos un glob obtenemos una lista, luego hacemos otro glob diferente, y asi, solo para obtener el primero, la cosa podria impactar en la performance... y otra cuestion seria la memoria extra que esto representaria...

la idea seria levantar la lista de directorios primero, pero no se si vale la pena y quizas con un nuevo glob para resetear seria suficiente.

la otra opcion es que levantes primero todos los files, asi el glob al llegar al final se cierra solo, y ahi luego haces el rmdir, pero analizando tus datos en memoria...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Fede

Gracias Splinter por la explicación.  ;)

Si es cuestión de velocidad, déjalo como está.

Saludos.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.