freecplus框架-文件操作

一、源代码说明

freecplus是一个Linux系统下的C/C++开源框架,源代码请前往C语言技术网(www.freecplus.net)下载。

本文介绍的是freecplus框架的文件操作的函数和类。

函数和类的声明文件是freecplus/_freecplus.h。

函数和类的定义文件是freecplus/_freecplus.cpp。

示例程序位于freecplus/demo目录中。

编译规则文件是freecplus/demo/makefile。

二、文件操作函数

1、删除文件

删除目录中的文件,类似Linux系统的rm命令。

函数声明:

bool REMOVE(const char *filename,const int times=1);

参数说明:

filename:待删除的文件名,建议采用绝对路径的文件名,例如/tmp/root/data.xml。

times:执行删除文件的次数,缺省是1,建议不要超过3,从实际应用的经验看来,如果删除文件第1次不成功,再尝试2次是可以的,更多次就意义不大了。还有,如果执行删除失败,usleep(100000)后再重试。

返回值:true-删除成功;false-删除失败,失败的主要原因是权限不足。

在应用开发中,可以用REMOVE函数代替remove库函数。

2、文件重命名

把文件重命名,类似Linux系统的mv命令。

函数声明:

bool RENAME(const char *srcfilename,const char *dstfilename,const int times=1);

参数说明:

srcfilename:原文件名,建议采用绝对路径的文件名。

destfilename:目标文件名,建议采用绝对路径的文件名。

times:执行重命名文件的次数,缺省是1,建议不要超过3,从实际应用的经验看来,如果重命名文件第1次不成功,再尝试2次是可以的,更多次就意义不大了。还有,如果执行重命名失败,usleep(100000)后再重试。

返回值:true-重命名成功;false-重命名失败,失败的主要原因是权限不足或磁盘空间不够,如果原文件和目标文件不在同一个磁盘分区,重命名也可能失败。

注意,在重命名文件之前,会自动创建destfilename参数中的目录名。

在应用开发中,可以用RENAME函数代替rename库函数。

3、复制文件

复制文件,类似Linux系统的cp命令。

函数声明:

bool COPY(const char *srcfilename,const char *dstfilename);

参数说明:

srcfilename:原文件名,建议采用绝对路径的文件名。

destfilename:目标文件名,建议采用绝对路径的文件名。

返回值:true-复制成功;false-复制失败,失败的主要原因是权限不足或磁盘空间不够。

注意:

1)在复制名文件之前,会自动创建destfilename参数中的目录名。

2)复制文件的过程中,采用临时文件命名的方法,复制完成后再改名为destfilename,避免中间状态的文件被读取。

3)复制后的文件的时间与原文件相同,这一点与Linux系统cp命令不同。

4、获取文件的大小

函数声明:

int FileSize(const char *filename);

参数说明:

filename:待获取的文件名,建议采用绝对路径的文件名。

返回值:如果文件不存在或没有访问权限,返回-1,成功返回文件的大小,单位是字节。

5、获取文件的时间

函数声明:

bool FileMTime(const char *filename,char *mtime,const char *fmt=0);

参数说明:

filename:待获取的文件名,建议采用绝对路径的文件名。

mtime:用于存放文件的时间,即stat结构体的st_mtime。

fmt:设置时间的输出格式,与LocalTime函数相同,但缺省是"yyyymmddhh24miss"。

返回值:如果文件不存在或没有访问权限,返回false,成功返回true。

6、重置文件的时间

函数声明:

int UTime(const char *filename,const char *mtime);

参数说明:

filename:待重置的文件名,建议采用绝对路径的文件名。

stime:字符串表示的时间,格式不限,但一定要包括yyyymmddhh24miss,一个都不能少。

返回值:true-成功;false-失败,失败的原因保存在errno中。

7、示例程序

示例(demo34.cpp)

/*
 *  程序名:demo34.cpp,此程序演示freecplus框架的文件操作函数的用法
 *  作者:C语言技术网(www.freecplus.net) 日期:20190525
*/
#include "../_freecplus.h"

int main()
{
   
  // 删除文件。
  if (REMOVE("/tmp/root/_freecplus.h")==false)
  {
   
    printf("REMOVE(/tmp/root/_freecplus.h) %d:%s\n",errno,strerror(errno));
  }

  // 重命名文件。
  if (RENAME("/tmp/root/_freecplus.cpp","/tmp/root/aaa/bbb/ccc/_freecplus.cpp")==false)
  {
   
    printf("RENAME(/tmp/root/_freecplus.cpp) %d:%s\n",errno,strerror(errno))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值