📄 filemng.c
字号:
#include <dir.h>
#include "wea_dos.h"
BOOL FileList(char* path,char* ext,struct stringlist * fp)
{
struct ffblk ffblk;
int done,i,n;
char ex[5];
if(ext[0]=='w')
strcpy(ex,"*.wea");
else
strcpy(ex,"*.job");
if(chdir(path)!=0)
{
fp->number=-1;
return 0;
}
for(i=0;i<500;i++)
fp->filenames[i]='\0';
done = findfirst(ex,&ffblk,0);
i=0;
while (!done && i<500-1)
{
n=strlen(fp->filenames);
fp->fn[i]=n;
strcat(fp->filenames, ffblk.ff_name);
i++;
done = findnext(&ffblk);
}
fp->number=i;
n=strlen(fp->filenames);
fp->fn[i]=n;
return 1;
}
BOOL FileSel(struct stringlist* fl,char* filename,int index)
{
int i,j,n;
char info[50];
n=fl->number;
if(n==0)
return 0;
n=fl->fn[index+1];
i=fl->fn[index];
for(j=0;j<n-i;j++)
filename[j]=fl->filenames[j+i];
filename[j]='\0';
return 1;
}
BOOL FileCopy(char* filename,char* pathS,char* pathD,char* info)
{
struct ffblk ffblk;
int done,i,n;
char c;
char command[100];
char pathDD[16];
if(chdir(pathS)!=0)
{
sprintf(info,"Source path : %s not present",pathS);
return 0;
}
done=findfirst(filename,&ffblk,0);
if(done!=0)
{
sprintf(info,"Source file : %s not present",filename);
return 0;
}
if(chdir(pathD)!=0)
{
sprintf(info,"Destnation path : %s not present",pathD);
return 0;
}
if(findfirst(filename,&ffblk,0)==0)
{
sprintf(info,"Overwrite the file with the same name %s ? (Y/N)",filename);
DisplayInfo(info);
c=getch();
if(c!='Y' && c!='y')
return 0;
}
strcpy(pathDD,pathD);
if(pathDD[0]=='D')
pathDD[11]='\0';
sprintf(command,"copy %s%s %s",pathS,filename,pathDD);
n=system(command);
sprintf(info,"File: %s copied from %s to %s",filename,pathS,pathDD);
return 1;
}
BOOL FileMove(char* filename,char* pathS,char* pathD,char* info)
{
if(FileCopy(filename,pathS,pathD,info))
if(FileDelete(filename,pathS,info))
{
sprintf(info,"File: %s moved from %s to %s",filename,pathS,pathD);
return 1;
}
return 0;
}
BOOL FileDelete(char* filename,char* pathS,char* info)
{
struct ffblk ffblk;
int done,i,n;
char c;
char command[100];
if(chdir(pathS)!=0)
{
sprintf(info,"Source path : %s not present",pathS);
return 0;
}
done=findfirst(filename,&ffblk,0);
if(done!=0)
{
sprintf(info,"Source file : %s not present",filename);
return 0;
}
sprintf(command,"del %s%s",pathS,filename);
system(command);
sprintf(info,"File: %s deleted from %s",filename,pathS);
return 1;
}
BOOL FileRename(char* oldname,char* newname,char* pathS,char* info)
{
struct ffblk ffblk;
int done,i,n;
char c;
char command[100];
if(chdir(pathS)!=0)
{
sprintf(info,"Source path : %s not present",pathS);
return 0;
}
done=findfirst(oldname,&ffblk,0);
if(done!=0)
{
sprintf(info,"Source file : %s not present",oldname);
return 0;
}
sprintf(command,"ren %s %s",oldname,newname);
system(command);
sprintf(info,"File: %s renamed to %s",oldname,newname);
return 1;
}
/*
void SelFile(char* fn,char* ext)
{
struct ffblk ffblk;
int done;
printf("Directory listing of *.*\n");
done = findfirst("d:\\ccjb\\wea\\*.wea",&ffblk,0);
while (!done)
{
printf(" %s\n", ffblk.ff_name);
done = findnext(&ffblk);
}
return ;
DIR* d=opendir("d:\\ccjb\\wea");
struct dirent* de;
d=d;
while(de=readdir(d))
puts(de->d_name);
closedir(d);
struct ffblk f;
int done = findfirst("*.exe", &f, FA_HIDDEN | FA_SYSTEM);
while (!done)
{
printf("%10u %2u:%02u:%02u %2u/%02u/%4u %s\n",
f.ff_fsize,
(f.ff_ftime >> 11) & 0x1f,
(f.ff_ftime >> 5) & 0x3f,
(f.ff_ftime & 0x1f) * 2,
(f.ff_fdate >> 5) & 0x0f,
(f.ff_fdate & 0x1f),
((f.ff_fdate >> 9) & 0x7f) + 1980,
f.ff_name);
done = findnext(&f);
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -