hello world

随笔 - 2, 文章 - 63, 评论 - 0, 引用 - 0
数据加载中……

windows vc++6.0 目录操作函数

//Author : cppgp
//Email   : cppgp@163.com
//Time    : 2007 03 30
//按照字母顺序排列

1 . int _access( const char *path, int mode );
功   能 : 测定文件/目录存取权限.
头文件 : #include <io.h>
参   数 : path:文件或者目录
   mode:权限设定,其值如下:
   00 Existence only
   02 Write permission
   04 Read permission
   06 Read and write permission

返回值 : 拥有该权限返回0
   没有权限返回-1,且设置errno为如下值
   ENOENT 路径/文件不存在
   EACCES 没有相应权限

2 . int _chdir( const char *dirname );
功   能 : 更改当前工作目录.
头文件 : #include <direct.h>
返回值 : 成功返回0
   失败返回-1,且设置errno如下:
   ENOENT 该路径不存在

3 . int _chdrive( int drive );
功   能 : 更改当前工作驱动器.
头文件 : #include <direct.h>
返回值 : 成功返回0
   失败返回-1
注   释 : 参数说明
     drive =1<==> A盘
     drive =2<==> B盘
     drive =3<==> C盘
   如此等等,该函数可以由_chdir代替

4 . int _findclose( long handle );
功   能 : 关闭搜寻句柄并释放相应资源
头文件 : #include <io.h>
参   数 : long handle 搜索句柄(通常由紧靠其前的_findfirst()返回,_findfirst()见下)
   fileinfo 文件信息buffer
返回值 : 成功返回0
   出错返回-1,且设置errno为如下值
   ENOENT 没有更多的符合该泛式的文件

5 . long _findfirst( char *filespec, struct _finddata_t *fileinfo );
功   能 : 提供与filespec指定入口泛式匹配的第一个文件.通常后继用_findnext函数后续使用来完成某泛式下的文件遍历.
头文件 : #include <io.h>
参   数 : filespec 目标文件规范,可以包含通配符
   fileinfo 文件信息buffer
返回值 : 成功返回唯一的搜索句柄
   出错返回-1,且设置errno为如下值
   ENOENT 该泛式无法匹配
   EINVAL 无效文件名

6 . int _findnext( long handle, struct _finddata_t *fileinfo );
功   能 : 按照前面_findfirst中的泛式规则,查找下一个符合该泛式的文件,并以 此为依据修改fileinfo中的值
头文件 : #include <io.h>
参   数 : long handle 搜索句柄(通常由紧靠其前的_findfirst()返回)
   fileinfo 文件信息buffer
返回值 : 成功返回0
   出错返回-1,且设置errno为如下值
   ENOENT 没有更多的符合该泛式的文件


7 . char *_getcwd( char *buffer, int maxlen );
功   能 : 获得当前工作目录.
头文件 : #include <direct.h>
返回值 : 成功返回指向buffer的pointer
   失败返回NULL,且设置errno为以下三个值之一:
   ENODEV 无该设备
   ENOMEM 内存不够
   ERANGE 结果超出范围
注   意 : 当第一个参数为 NULL 时,第二个参数 maxlen 长度设置无效,且函数使用malloc分配足够内存,需要将函数返回值传递给free()函数来释放内存.
   当第一个参数不为 NULL 时,maxlen 指定长度不够函数返回错,设置errno为ERANGE

8 . char *_getdcwd( int drive, char *buffer, int maxlen );
功   能 : 获得指定驱动器的当前工作路径.
头文件 : #include <direct.h>
返回值 : 成功返回指向buffer的pointer
   失败返回NULL,且设置errno为以下三个值之一:
   ENODEV 无该设备
   ENOMEM 内存不够
   ERANGE 结果超出范围
注   意 : 当第一个参数为 NULL 时,该函数设置errno为ERANGE

9 . int _getdrive( void );
功   能 : 获得当前磁盘驱动器.
头文件 : #include <direct.h>
返回值 : 返回驱动器值,1<==>A 2<==>B 如此等等;函数不会出错!

10 . unsigned long _getdrives(void);
功   能 : 获得当前所有驱动器.
头文件 : #include <direct.h>
返回值 : 各个位代表对应驱动器,
   bit 0 <==> A
   bit 1 <==> B
   bit 2 <==> C
   ... ...
注:bit x 表示unsigned long的第x位

11 . int _mkdir( const char *dirname );
功   能 : 创建一个新目录,目录名为dirname.
头文件 : #include <direct.h>
返回值 : 成功返回0
   失败返回-1,且设置errno为以下三个值之一
   EACCESS 权限不允许
   EEXIST   该目录已存在
   ENOENT   无该文件或目录

12 . int _rmdir( const char *dirname );
功   能 : 删除名为dirname的目录.
头文件 : #include <direct.h>
返回值 : 成功返回0
   失败返回-1,且设置errno为以下三个值之一
   EACCESS    权限不允许
   ENOTEMPTY dirname不是文件夹;
      或者该文件夹不空;
      或者dirname为当前工作文件夹;
      或者dirname为当根文件夹;
   ENOENT     无该文件或目录

//--end--

//如有错误,希望指出!

//联系 : cppgp@163.com

posted on 2009-03-30 00:00 听风 阅读(739) 评论(0)  编辑  收藏 所属分类: C++


只有注册用户登录后才能发表评论。


网站导航: