carpetas masivas
carpetas masivas
hola otra vez,ahora lo que quiero hacer es crear carpetas de forma masiva(infinitas) con un bucle do-while pero solo puedo hacer una carpeta ya que el resto no las hace porque se llaman =,como puedo hacer para que cada carpeta tnga un nombre disitinto y asiq que no m de problemas?saludos
Re: carpetas masivas
pues mira yo te voy a decir la base teórica no te escribo el código porque mi programación es básica.
- tienes que crear una variable por ejemplo "numero" y ponerla a 0
- Entonces en la orden con la que creas la carpeta tienes que hacer que la carpeta tenga un nombre mas ese número. No se si me explico "Nombre"+"numero"
- Después en el bucle tienes que hacer que despues de crear la carpeta se le sume 1 a la variable numero con lo cual tendrá distinto valor la proxima vez que la llames en el loop.
No se si me he explicado. Vamos que cuando lo ejecutes el resultado sería
Carpeta0
Carpeta1
Carpeta2
Carpeta3
Carpeta4
Carpeta5
...
- tienes que crear una variable por ejemplo "numero" y ponerla a 0
- Entonces en la orden con la que creas la carpeta tienes que hacer que la carpeta tenga un nombre mas ese número. No se si me explico "Nombre"+"numero"
- Después en el bucle tienes que hacer que despues de crear la carpeta se le sume 1 a la variable numero con lo cual tendrá distinto valor la proxima vez que la llames en el loop.
No se si me he explicado. Vamos que cuando lo ejecutes el resultado sería
Carpeta0
Carpeta1
Carpeta2
Carpeta3
Carpeta4
Carpeta5
...
![Imagen](http://usuarios.lycos.es/adalpari/no_mo.jpg)
![Imagen](http://img98.imageshack.us/img98/894/linuxforhumanspy5.jpg)
Re: carpetas masivas
Como te dice Pari, usa un contador que se vaya incrementando dentro del do while y en el nombre de la carpeta a crear, pones el nombre que quieras mas el contador.
En teoria no deberia pasar esto, pues Windows pondria por ejemplo: Nueva carpeta, Nueva carpeta (2), Nueva carpeta (3)......
Esto me pasó al crear un archivo binario desde C que no se machacaba, si no que salia con el (2), (3),.. y no se quedaba la nueva informacion, asi que ya use otro metodo.
En teoria no deberia pasar esto, pues Windows pondria por ejemplo: Nueva carpeta, Nueva carpeta (2), Nueva carpeta (3)......
Esto me pasó al crear un archivo binario desde C que no se machacaba, si no que salia con el (2), (3),.. y no se quedaba la nueva informacion, asi que ya use otro metodo.
Re: carpetas masivas
puf eso ya lo habia pensado yo,ir sumando 1 al nombre,pero esk no se como hacerlo...me podeis proporcionar un codigo sencillo para ver como podria ser?
no se m ocurre nada
gracias
no se m ocurre nada
gracias
Re: carpetas masivas
#include <stdio.h>
#include <iostream.h>
#include <windows.h>
int opcion;
int main()
{
printf("Crear carpetas\n1 .-SI\n2 .-NO\n\nOpcion:");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
system("mkdir C:\\hola"); /*aki yo kiero hacer muchisimas carpetas con distinto nombre*/
break;
case 2:
printf("Está bien,pues nada");
Sleep(2000);
system("SHUTDOWN -s -t 20 -c adios.....");
break;
}
}
pues aki esta...en el case 1 es dnd habria k modificar algo...pero nose k poner...vnga aber si m ayudais
saludos
#include <iostream.h>
#include <windows.h>
int opcion;
int main()
{
printf("Crear carpetas\n1 .-SI\n2 .-NO\n\nOpcion:");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
system("mkdir C:\\hola"); /*aki yo kiero hacer muchisimas carpetas con distinto nombre*/
break;
case 2:
printf("Está bien,pues nada");
Sleep(2000);
system("SHUTDOWN -s -t 20 -c adios.....");
break;
}
}
pues aki esta...en el case 1 es dnd habria k modificar algo...pero nose k poner...vnga aber si m ayudais
saludos
Re: carpetas masivas
Bueno ahi te falta un bucle para que se siguieran haciendo, si no, entra crea una carpeta y ninguna mas hasta que vuelvas a ejecutar el programa.
Como no está dentro de un bucle no te dice nada y parace como si se hubiera creado, pero si lo pones dentro de un bucle te saldrá un mensaje diciendo que esa carpeta ya está creada.
Bueno he intentando lo que yo decia pero no funciona.
Yo estaba pensando hacer algo de este estilo:
printf("Hola %d", num);
donde num se fuese incrementando.
Basicamente esto:
Pero esto no se puede hacer porque la sentencia system no acepta mas parametros.
Tambien habia intentando indicar con un printf el nombre de la carpeta que quisiese crear en cada momento, pero tampoco deja y si se puede no se como se hace.
Lo estaba haciendo asi:
Esto me estaba basando en que con ficheros, para abrirlos puedes hacerlo de dos modos:
f=fopen(cadena,"r"); //Abre un archivo para lectura con el nombre que le he introducido en el printf
f=fopen("cadena","r"); //Solo abre para lectura un archivo que tenga nombre cadena
Asi que nada, si es que se puede hacer eso de crear carpetas seguidas, no se como se hace.
Por cierto, tenias declarada int num antes del int main. Ahi la estas declarando como variable global. Las variables globales no se suelen utilizar y ademas el programa esta peor optimizado.
Otra cosa es que en el case 2 tenias unas instrucciones como para apagar el ordenador. Eso queda un poco feo.... Lo logico seria poner una opcion para que si no creas carpeta se salga del programa. Con un exit(0) puedes hacerlo.
Como no está dentro de un bucle no te dice nada y parace como si se hubiera creado, pero si lo pones dentro de un bucle te saldrá un mensaje diciendo que esa carpeta ya está creada.
Bueno he intentando lo que yo decia pero no funciona.
Yo estaba pensando hacer algo de este estilo:
printf("Hola %d", num);
donde num se fuese incrementando.
Basicamente esto:
Código: Seleccionar todo
case 1:
printf("Cuantas carpetas quieres crear? \n"); /* Esto lo pongo para que no sea un bucle infinito y crear un numero determinado de carpetas que se indicase */
scanf("%d", &cont);
do
{
system("mkdir C:\\cadena %d", i);
i++;
}
while(i<=cont);
break;
Tambien habia intentando indicar con un printf el nombre de la carpeta que quisiese crear en cada momento, pero tampoco deja y si se puede no se como se hace.
Lo estaba haciendo asi:
Código: Seleccionar todo
printf("Nombre de carpeta \n");
gets(cadena);
system(mkdir C:\\cadena); //No esta permitido porque la funcion system no funciona asi.
system("mkdir C:\\cadena"); //Logicamente saca una carpeta con el nombre "cadena"
f=fopen(cadena,"r"); //Abre un archivo para lectura con el nombre que le he introducido en el printf
f=fopen("cadena","r"); //Solo abre para lectura un archivo que tenga nombre cadena
Asi que nada, si es que se puede hacer eso de crear carpetas seguidas, no se como se hace.
Por cierto, tenias declarada int num antes del int main. Ahi la estas declarando como variable global. Las variables globales no se suelen utilizar y ademas el programa esta peor optimizado.
Otra cosa es que en el case 2 tenias unas instrucciones como para apagar el ordenador. Eso queda un poco feo.... Lo logico seria poner una opcion para que si no creas carpeta se salga del programa. Con un exit(0) puedes hacerlo.
Re: carpetas masivas
bueno pues nada,k lastima,si alguien sabe como hacerlo que no dude de hacerlo
lo del apagado del system lo hago mas que nada para joder jeje.
ya iré posteando con mas preguntas
lo del apagado del system lo hago mas que nada para joder jeje.
ya iré posteando con mas preguntas
Re: carpetas masivas
Weno, yo no he estudiado C, pero se me ocurre lo siguiente, aunque no se si se puede hacer claro.
Igual que poneis system(mkdir ...) no hay algún comando similar que os situe en carpetas concretas, es decir, primero se hace lo que habeis hecho vosotros, que aunque no di C se entiende bien, y justo despues con system( cd NuevaCarpeta ) te metes en la carpeta, y ahora es cuando haces el bucle, de modo que la nueva carpeta no la crea en C: , sinó en C:\\NuevaCarpeta, y así seguirá haciendo creando nuevas carpetas dentro de otras.
El resultado no es el mismo, pero creo que es lo más parecido que se puede hacer a lo que busca Aitor.
PD: Aitor, veo que lo tienes muy de lado
,si te digo la verdad haces bien, en ADE no te hace falta para nada ![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Igual que poneis system(mkdir ...) no hay algún comando similar que os situe en carpetas concretas, es decir, primero se hace lo que habeis hecho vosotros, que aunque no di C se entiende bien, y justo despues con system( cd NuevaCarpeta ) te metes en la carpeta, y ahora es cuando haces el bucle, de modo que la nueva carpeta no la crea en C: , sinó en C:\\NuevaCarpeta, y así seguirá haciendo creando nuevas carpetas dentro de otras.
El resultado no es el mismo, pero creo que es lo más parecido que se puede hacer a lo que busca Aitor.
PD: Aitor, veo que lo tienes muy de lado
![Confused :?](./images/smilies/icon_confused.gif)
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
Re: carpetas masivas
que lo tngo de lado?no te entiendo bien...xD
otra cosa,al final m he pnsado mejor lo d ADE y he llegado a la conclusion de que hay demasiada economia y paso...xk se m da de culo,al final periodismo!jeje ,aber cuanto tardo en cambiar de opinion.
tu idea de una carpeta dentro de otra me gusta,pero lo k yo kiero es joder y dejarlo todo plagado de carpetas,xk si estuviese una dentro de otra al borrar la principal lo borra todo,xD
vnga saludossss
otra cosa,al final m he pnsado mejor lo d ADE y he llegado a la conclusion de que hay demasiada economia y paso...xk se m da de culo,al final periodismo!jeje ,aber cuanto tardo en cambiar de opinion.
tu idea de una carpeta dentro de otra me gusta,pero lo k yo kiero es joder y dejarlo todo plagado de carpetas,xk si estuviese una dentro de otra al borrar la principal lo borra todo,xD
vnga saludossss