Data_Structure/作業/unit5/dir-all.c

64 lines
2.1 KiB
C
Raw Normal View History

2025-01-20 21:30:53 +08:00
/*
Program: dir-all.c (Report comments/bugs to chikh@yuntech.edu.tw)
Function: <EFBFBD><EFBFBD><EFBFBD>ܫ<EFBFBD><EFBFBD>w<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҧ<EFBFBD><EFBFBD>ɮפ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><EFBFBD>p<EFBFBD><EFBFBD><EFBFBD>R<EFBFBD>O<EFBFBD>C<EFBFBD><EFBFBD><EFBFBD>J c:\temp\ <EFBFBD>˵<EFBFBD><EFBFBD>ĪG
Note:
1. <EFBFBD><EFBFBD><EFBFBD>{<EFBFBD><EFBFBD><EFBFBD>ϥ<EFBFBD>dirent.h<EFBFBD>A<EFBFBD>Ӽ<EFBFBD><EFBFBD>Y<EFBFBD>ɩw<EFBFBD>q<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƫ<EFBFBD><EFBFBD>A<EFBFBD>A<EFBFBD>Ӽ<EFBFBD><EFBFBD>Y<EFBFBD>ɦ<EFBFBD><EFBFBD><EFBFBD>
C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include
2. <EFBFBD>R<EFBFBD>O<EFBFBD>C<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>Φ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c:\\temp\\ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܿ<EFBFBD><EFBFBD>J c:\temp\ <EFBFBD>Y<EFBFBD>i<EFBFBD><EFBFBD>
<EFBFBD>T<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>ݨӤ<EFBFBD><EFBFBD>ݦb<EFBFBD><EFBFBD><EFBFBD>|<EFBFBD>y<EFBFBD>z<EFBFBD><EFBFBD><EFBFBD>r<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˱׽u<EFBFBD>A<EFBFBD>ЦP<EFBFBD>ǹ<EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>ӷL<EFBFBD>t<EFBFBD><EFBFBD>
3. Dev-C++<EFBFBD><EFBFBD><EFBFBD>Ѫ<EFBFBD>dirent.h<EFBFBD>ҩw<EFBFBD>q<EFBFBD><EFBFBD>dirent<EFBFBD><EFBFBD><EFBFBD>c<EFBFBD>p<EFBFBD>U<EFBFBD>G
struct dirent
{
long d_ino; // Always zero
unsigned short d_reclen; // Always zero
unsigned short d_namlen; // Length of name in d_name
char d_name[260];// File name
};
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
int main()
{
DIR *dpdf; //<2F>ŧi<C5A7><69><EFBFBD>|<7C><><EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD> <20><>opendir<69>f<EFBFBD>t <20>ΨӦs<D3A6><73><EFBFBD>}<7D>Ҹ<EFBFBD><D2B8>|<7C><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m
struct dirent *epdf;
char directoryPath[128], fileName[256];
long i, fileSize, fileCount;
FILE *fp;
system("cls");
printf("\n<EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>| ==> ");
scanf("%127[^\n]%*c",directoryPath);
if ((dpdf=opendir(directoryPath)) == NULL) { //opendir<69><72>DIR<49><52><EFBFBD>A<EFBFBD>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>m
printf("<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<EFBFBD>b!\n");
return -1;
}
printf("<EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҧ<EFBFBD><EFBFBD>ɮ׸<EFBFBD><EFBFBD>T<EFBFBD>p<EFBFBD>U ...\n=============================================\n");
while (epdf = readdir(dpdf)) { //Ū<><C5AA><EFBFBD>ɮשҦb<D2A6>ؿ<EFBFBD><D8BF>A<EFBFBD>u<EFBFBD>ndpdf<64>ҫ<EFBFBD><D2AB><EFBFBD><EFBFBD>e<EFBFBD><65><EFBFBD>šA<C5A1>Y<EFBFBD>N<EFBFBD><4E><EFBFBD>ۦ<EFBFBD><DBA6>ɮצs<D7A6>b<EFBFBD>A<EFBFBD>]<5D><><EFBFBD>i<EFBFBD>J<EFBFBD>j<EFBFBD><6A><EFBFBD>B<EFBFBD>z
if (strcmp(epdf->d_name,".")==0 || strcmp(epdf->d_name,"..")==0) continue; //<2F>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>ɦW<C9A6>@<40>w<EFBFBD>|<7C>s<EFBFBD>b <20>@<40>w<EFBFBD>n<EFBFBD>ư<EFBFBD> <20>]<5D><><EFBFBD>o<EFBFBD>O<EFBFBD>t<EFBFBD>Φ۰ʥͦ<CAA5><CDA6><EFBFBD> <20>]<5D>|<7C>۰<EFBFBD><DBB0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Alinux<75><78><EFBFBD>|<7C>Q<EFBFBD><51><EFBFBD><EFBFBD>
sprintf(fileName,"%s%s",directoryPath,epdf->d_name); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>|+<2B>ɦW
if ((fp=fopen(fileName,"rb")) == NULL) { // <20>}<7D><><EFBFBD>ɮסA<D7A1>}<7D>ɼҦ<C9BC><D2A6><EFBFBD>"<22><><EFBFBD>J+<2B><><EFBFBD>X+<2B><><EFBFBD>r<EFBFBD>D<EFBFBD><44><EFBFBD>r<EFBFBD>q<EFBFBD>Y"
//printf("File open error\n");
printf("%-50s *<2A>l<EFBFBD>ؿ<EFBFBD>*\n",epdf->d_name);
}
else {
fseek(fp,0,SEEK_END); /* <20>ɮ<EFBFBD>Ū<EFBFBD>g<EFBFBD>Y<EFBFBD><59><EFBFBD>̧ܳ<DCB3><CCA7><EFBFBD> */
fileSize = ftell(fp); /* <20>򪾩Ҧb<D2A6><62><EFBFBD>m<EFBFBD>A<EFBFBD><41><EFBFBD><EFBFBD>ɮת<C9AE><D7AA><EFBFBD> */
fclose(fp);
printf("%-50s %d bytes\n",epdf->d_name,fileSize);
fileCount++;
}
}
closedir(dpdf); //<2F><><EFBFBD><EFBFBD><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>c
printf("=============================================\n<EFBFBD><EFBFBD><EFBFBD>Ƨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>@<40><>%d<>ɮ<EFBFBD>!\n",fileCount);
return 0;
}