|
|
x_velvet@vk |
08-06-2013 12:24 2164317 |
Программа вывода файлов с сортировкой по расширению
Итак, в чем собственно проблема:
Помогите доработать программу эмуляции DIR (командной строки) с ключем /o:e , ну или хотяб алгоритм сортировки(язык Си)
//================================================
Код:
#include<stdlib.h>
#include<dir.h>
#include<stdio.h>
#include<string.h>
#include<dos.h>
#include<io.h>
#include<conio.h>
int main(int argc, char *argv[])
{int done;//перемен. в каторой найден файл или не найден
int sdisk;//текущее имя диска до запуска программы
char sdir[MAXPATH];//текущий путь до запуска программы
int k=0,n;
int curdisk;char buf[MAXPATH];//путь который мы задаем
struct ffblk fb;//структура которая описывает файл
clrscr();
if(argc!=2) {printf("Неверное количество параметров\n");getch();exit(1);}
sdisk=getdisk();//получить текущий диск
getcurdir(0,sdir);//получить текущий путь
curdisk=strlwr(argv[1])[0]-'a';//strlwr из больших букв делает маенькие
setdisk(curdisk);chdir(argv[1]);//setdisk кстановка диска, в argv[1] хронится параметр первый
done=findfirst("*.*",&fb,-1);// найти файл с именем...
while(!done)
{
printf("%02d.%02d.%04d %02d:%02d:%02d",
//*******************************
fb.ff_fdate &0x1f, //15
(fb.ff_fdate>>5) &0x0f, //15
(fb.ff_fdate>>9) + 1980, //1980
fb.ff_ftime>>11,
(fb.ff_ftime>>5) &0x3f, //63
(fb.ff_ftime<<1) &0x3f); //63
{
if(fb.ff_attrib&FA_DIREC)
printf(" <DIR> ");
else
printf(" %12ld bytes", fb.ff_fsize);
printf(" %s \n",fb.ff_name);
} k++;
done=findnext(&fb);
}
setdisk(sdisk);chdir(sdir);
getch();
return 0;
}
//=======================================================
на текущий момент программа выводит все файлы и папки, с сортировкой запара....
|
я не увидел сортировки имён файлов (хотя бы qsort). Хотя без преформатированного оформления кода вообще ничего не видно (советую отформатировать в читабельный вид)
|
Время: 14:17.
© OSzone.net 2001-2025