6
LIBRERÍA DIR.H Más funciones para la manipulación de la estructura de almacenamiento del sistema. mkdir: Crea una carpeta o directorio. Devuelve 0 si ha tenido éxito, o -1 si se ha producido un error. Sintaxis: mkdir("nombre_carpeta"); Ejemplo: #include <stdio.h> #include <stdlib.h> #include <dir.h> main() { char carpeta[20]; printf("Deme el nombre de la carpeta: "); scanf("%s",carpeta); if(mkdir(carpeta)!=0) printf("Error al crear la carpeta\n"); else printf("Sea ha creado la carpeta %s\n",carpeta); getch(); } rmdir: Borra una carpeta o directorio. Devuelve 0 si ha tenido éxito, o -1 si se ha producido un error. La carpeta debe estar vacía. Sintaxis: rmdir("nombre_carpeta"); Ejemplo: #include <stdio.h> #include <stdlib.h> #include <dir.h> main() { char carpeta[20]; printf("Deme el nombre de la carpeta que quiere borrar: "); scanf("%s",carpeta); if(rmdir(carpeta)!=0) printf("No se pudo borrar el directorio\ n");

dir.h

Embed Size (px)

Citation preview

Page 1: dir.h

LIBRERÍA DIR.H

Más funciones para la manipulación de la estructura de almacenamiento del sistema.

mkdir: Crea una carpeta o directorio. Devuelve 0 si ha tenido éxito, o -1 si se ha producido un error.

Sintaxis: mkdir("nombre_carpeta");

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(){

char carpeta[20];

printf("Deme el nombre de la carpeta: ");scanf("%s",carpeta);

if(mkdir(carpeta)!=0) printf("Error al crear la carpeta\n");else printf("Sea ha creado la carpeta %s\n",carpeta);getch();

}

rmdir: Borra una carpeta o directorio. Devuelve 0 si ha tenido éxito, o -1 si se ha producido un error. La carpeta debe estar vacía.

Sintaxis: rmdir("nombre_carpeta");

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>main(){

char carpeta[20];

printf("Deme el nombre de la carpeta que quiere borrar: ");scanf("%s",carpeta);

if(rmdir(carpeta)!=0) printf("No se pudo borrar el directorio\n");else printf("La carpeta %s ha sido eliminada\n",carpeta);getch();

}

chdir: Cambia de directorio. Devuelve 0 si ha tenido éxito, o -1 si se ha producido un error.

Sintaxis: chdir("ruta");

Page 2: dir.h

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(){

char ruta[40];

printf("Escriba la ruta a donde quiere ir: ");scanf("%s",ruta);

if(chdir(ruta)!=0) printf("Error en la ruta especificada\n");

getch();}

searchpath: Devuelve la ruta completa de un archivo en el directorio actual. Devuelve NULL si no ha tenido éxito.

Sintaxis: searchpath("nombre_archivo");

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(){

char nombre[20];char *ruta;

printf("Como ese llama el archivo que desea buscar: ");scanf("%s", nombre);

if(searchpath(nombre)==NULL) printf("No se encontró el archivo\n");else printf("La ruta del archivo es:\n %s\n", ruta);getch();

}

getcwd: Devuelve la ruta completa del directorio actual. Devuelve NULL si no ha tenido éxito.

Sintaxis: getcwd(buffer, largo_buffer);

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(){ char buffer[MAXPATH];

Page 3: dir.h

/* MAXPATH simboliza la máxima cantidad decaracteres en la especificación de un archivo */

getcwd(buffer, MAXPATH); printf("El directorio atual es: %s\n", buffer); getch();}

getdisk: Obtiene la unidad de disco actual. Devuelve un entero que representa la unidad actual. La unidad A es 0

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main( ){ int unidad;

unidad = 'A' + getdisk(); /* la suma tiene que ver con el código ASCII

si a A le sumo 1, obtengo la B, si le sumo 2obtengo la C */

printf("La unidad actual es: %c\n", unidad); getch();}

setdisk: Cambia la unidad de disco

Sintaxis: setdisk(numero_de_unidad);

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(void){ int salvar, disk, unidades=0;

/* salva la unidad actual */ salvar=getdisk();

/* imprime las letras de las unidades disponibles */ printf("Unidadea Disponibles:\n"); for (disk = 0;disk < 26;++disk) /* el 26 viene de las 26 letras del abecedario */ { setdisk(disk);

if (disk == getdisk()) {

printf("%c: esta disponible\n", disk + 'A'); unidades++;

}

Page 4: dir.h

}

printf("%i unidades logicas hay disponibles en el sistema\n\n", unidades);

setdisk(salvar);

getch();}

getcurdir: Devuelve la ruta completa del directorio actual. Devuelve NULL si no ha tenido éxito.

Sintaxis: getcurdir(0, ruta+3)

Ejemplo:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(){

char ruta[MAXPATH];

strcpy(ruta, "X:\\"); /* llena la cadena con elformato habitual UNIDAD:\ */

ruta[0] = 'A' + getdisk(); /* remplaza la X por laletra de unidad actual */

getcurdir(0, ruta+3); /* llena a partir del cuartoelemento de la cadena ruta */

printf("\n%s", ruta);getch();

}

findfirst: Examina el directorio de un disco. Devuelve 0 si ha tenido éxito, y -1 si no es así.

Sintaxis: findfirst("especificación de archivo, estructura ffblk, atributos)

En la especificación de archivo se pueden usar comodines.

ffblk, corresponde a una estructura de control de bloque y tiene la siguiente forma:

struct ffblk{

char ff_reserved[21];char ff_attrib;unsigned ff_ftime;unsigned ff_fdate;long ff_fsize;char ff_name[13];

;

Page 5: dir.h

Los atributos de DOS son:

FA_RDONLY Sólo lecturaFA_HIDDEN Archivo OcultoFA_SYSTEM Archivo de sitemaFA_LABEL Etiqueta del volumenFA_DIREC DirectorioFA_ARCH Archivo

findnext: Continúa el exmen que de directorio realizado por find first. Devuelve 0 si ha tenido éxito, y -1 si no es así.

Sintaxis: findnext(estructura ffblk)

Ejemplo de findfirst y findnext:

#include <stdio.h>#include <stdlib.h>#include <dir.h>

main(void){ struct ffblk ffblk; /* estructuras de control de bloques de DOS */ int listo; printf("Directory listing of *.*\n"); listo = findfirst("*.*",&ffblk,0); while (!listo) { printf(" %s\n", ffblk.ff_name);

listo = findnext(&ffblk); }

getch();}