所在函数库为dir.h、dos.h
int chdir(char *path) 使指定的目录path(如:C:\\WPS)变成当前的工作目录,成
功返回0
int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功
返回0
pathname为指定的目录名和文件名,如C:\\WPS\\TXT
┃FA_RDONLY 只读文件┃FA_LABEL 卷标号┃
┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录 ┃
┃FA_SYSTEM 系统文件┃FA_ARCH 档案 ┃
例:
struct ffblk ff;
findfirst(*.wps,ff,FA_RDONLY);
int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0
void fumerge(char *path,char *drive,char *dir,char *name,char *ext)
此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名
存与path中.
int fnsplit(char *path,char *drive,char *dir,char *name,char *ext)
此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等),
文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相应的变量中.
int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名称
direc 保存指定驱动器当前工作路径的变量 成功返回0
char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入buf中,直到n个字
节长为为止.错误返回NULL
返回可使用驱动器总数
int mkdir(char *pathname) 建立一个新的目录pathname,成功返回0
int rmdir(char *pathname) 删除一个目录pathname,成功返回0
char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于template中
char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路径,
,此函数使用DOS的PATH变量,未找到文件返回NULL
我不知道楼主具体指的是什么?什么叫取得目录中的函数名?是指文件名吗?
如果是的话,看这个程序:
#include
process.h
main()
{
clrscr();
system("dir
e:\\younger");
/*"e:\\younger"可以改成任意目录*/
getch();
}这样可以吗,楼主?
在命令提示符窗口运行:findfile (盘符):\ *.(文件后缀)
如:[sourcecode language="plain"]findfile d:\ *.txt [/sourcecode]
即为找出d盘根目录下的所有.txt后缀的文件并写入文件路径于文件中.
void FileList(sockaddr_in sour_addr,char strStartDir[])
sockaddr_in destaddr;
int sourlen = 0;
int ret = 0;
int len = 0;
int flen = 0;
fd_set fdr;
unsigned short blocknum = 0;
FILE *file;
strcat(filename,"\\*");
destaddr.sin_family = AF_INET;
destaddr.sin_port = sour_addr.sin_port;
destaddr.sin_addr.s_addr = inet_addr(desthost);//
HANDLE hFind;
hFind = FindFirstFile(filename, FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
printf ("Invalid File Handle");
}
else
while(FindNextFile(hFind,FindFileData))
printf(FindFileData.cFileName);
printf("\r\n");
len = filldata(blocknum++,FindFileData.cFileName,strlen(FindFileData.cFileName),sendbuffer,sizeof(sendbuffer));
ret = sendto(serverSock,sendbuffer,len,0,(sockaddr *)destaddr,sizeof(destaddr));
FindClose(hFind);
return;
①.、可以利用getenv函数来实现.
在Linux系统中,home目录的定义是通过系统环境变量中的HOME变量值来确定的,在shell下可以通过
echo $HOME来查看.
而在C语言中,库函数getenv可以用作获取环境变量值.该函数位于stdlib.h, 原型为
char *getenv(char *name);
功能为获取名字为name的环境变量字符串.
所以,下面代码就可以获取到home目录名了:
char *home;
home = getenv("HOME");
printf("the home path is %s\n", home);
不过,利用C语言的几个目录函数,你可以自己编写一个dir_list()函数.
首先,头文件dos.h定义了一个find_t结构,它可以描述DOS下的文件信息,包括文件名、时间、日期、大小和属性.其次,C编译程序库中有_dos_findfirst()和_dos_findnext()这样两个函数,利用它们可以找到某个目录下符合查找要求的第一个或下一个文件.
dos_findfirst()函数有三个参数,第一个参数指明要查找的文件名,例如你可以用"*.*"指明要查找某个目录下的所有文件.第二个参数指明要查找的文件属性,例如你可以指明只查找隐含文件或子目录.第三个参数是指向一个find_t变量的指针,查找到的文件的有关信息将存放到该变量中.
dos_findnext()函数在相应的目录中继续查找由_dos_findfirst()函数的第一个参数指明的文件._dos_findnext()函数只有一个参数,它同样是指向一个find_t变量的指针,查找到刚文件的有关信息同样将存放到该变量中.
以上就是土嘎嘎小编为大家整理的c语言检查文件目录函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!