Upload
mario-enrique-ponce-moran
View
202
Download
1
Embed Size (px)
Citation preview
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");
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];
/* 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++;
}
}
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];
;
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();}