Listeur de fichier dos

Contenu du snippet

Ce code est prévu pour etre utilisé avec Ms-Dos ,il montre comment lister un dossier

ce code a été testé avec Borland BC 5.02

Source / Exemple :


#include <stdlib.h>
#include <dos.h>
#include <conio.h>
#include <dir.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

char old_dir[MAXDIR];
char new_dir[MAXDIR];
char curdir[260];
char buffer[80];
char buffer1[80];
char drive[MAXDRIVE];
char dir[MAXDIR];
char file[MAXFILE];
char ext[MAXEXT];
int flags;
unsigned count;
int handle;
struct find_t ffblk;

char *current_directory(char *path){
  strcpy(path, "X:\\");
  path[0] = 'A' + getdisk();
  getcurdir(0, path+3);
  return(path);
}
int SetDirect(char *Path){
	if (getcurdir(0, old_dir))	{
		perror("getcurdir()");
		exit(1);
	}
	printf("Dossier source: \\%s\n", old_dir);
	chdir(Path) ;
	return 0;
}

int ScanFiles(){//on cherche les exécutables
  int a=0x01;
  int done;
  printf("Analyse du dossier: \\%s\n",old_dir);
  done = _dos_findfirst("*.exe",_A_NORMAL|_A_RDONLY|_A_HIDDEN|_A_SYSTEM|_A_ARCH,&ffblk);
  while (!done) {
	  a++ ;
	  sprintf(buffer1,"Trouv?[%.2d] %s\\%s\n",a,strupr(old_dir), ffblk.name);
	  printf("\r%s",buffer1);
  if (_dos_write(handle, buffer1, strlen(buffer1), &count) != 0)   {
			perror("chec lors de l'envoi des informations");
	 return 1;
		}
  done = _dos_findnext(&ffblk);
  }
	_dos_close(handle);
	if (a<=0x02){
		printf("il y a eu %d executable",a-1);
	}else{
		printf("il y a eu %d executables",a-1);
	}
 return 0;
}

int main (int argc,char* argv[]){
  current_directory(curdir);
  clrscr();
  printf("%c Papy67\nListeur de fichier \nMode MS-Dos\n\r%s\n\r",184,curdir);
  for (int a=0x00; a<=argc; a++){
  printf("\rArgument [%.2d] %s\n",a,argv[a]);
  }
  flags=fnsplit(argv[1],drive,dir,file,ext);
  sprintf(buffer,"%s %s %s %s",curdir,drive,file,ext);
  SetDirect(buffer);
  ScanFiles();
  return 0;
}

Conclusion :


ca a pour but de montrer comment on liste en Mode DOS

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.