文件处理常用方法及link和unlink讲解
[cpp]
/*
* 函数介绍:access函数,当对文件使用时,判断是否存在指定的文件,以及是否能够按指定的模式进行访问。
* 头文件:unistd.h
* 参数mode可为以下的其中之一:
* 00 只存在
* 02 写权限
* 04 读权限
* 06 读和写权限
* 返回值:如果文件拥有给定的模式则返回0,如果发生错误返回-1。
* 函数介绍:unlink()会删除参数pathname指定的文件,文件夹处理不了。成功返回0,否则返回1。unlink()会删除参数pathname指定的文件。如果该文件名为最后连接点,但有其他进程打开了此文件,则在所有关于此文件的文件描述词皆关闭后才会删除。如果参数pathname为一符号连接,则此连接会被删除。
* 头文件:unistd.h
*/
#include <iostream>
#include<unistd.h>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
char strPath[50] = "f:\\test.txt";
FILE *fp = fopen(strPath,"rw");
int status = access("f:\\test.txt",0); //获取文件状态
if(status == 0 ) //判断文件是否存在
{
cout << "File exists\n" << endl;
fclose(fp);
if(!unlink("f:\\test.txt")) //删除指定文件
{
cout << "成功文件删除" << endl;
}
}else
{
cout << "No file" << endl;
return 0;
}
}
[cpp] view plaincopy
/*
* 函数介绍:link函数,建立硬链接,所谓的硬链接就是文件的别名,软连接相当于文件快捷方式,存放着源文件的路径
* 头文件:unistd.h
*/
#include <iostream>
#include<unistd.h>
#include<stdio.h>
#include<string>
using namespace std;
int main()
{
char strPath[50] = "./leeboy.txt";
char chBackupFile[50] = "./leeboy_wang.txt"; //映射文件名
FILE *fp = fopen(strPath,"rw");
int status = access("./leeboy.txt",0); //获取文件状态
if(status == 0 ) //判断文件是否存在
{
cout << "File leeboy exists\n" << endl;
fclose(fp);
if (link(strPath, chBackupFile) == -1) //建立文件硬链接,相当于生成一个新的文件,但内存中放的是同一个位置
{
cout << "文件链接生成错误!";
return 0;
}
if(unlink("./leeboy.txt") == -1) //删除源文件,但备份文件还存在
{
cout << "删除源失败" << endl;
}
}else
{
cout << "No file" << endl;
return 0;
}
}
3、获取文件大小
[cpp]
/*
* 函数介绍:ftell获取文件指针位置,可以获取文件大小
* 头文件:stdio.h
*/
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
FILE *fp = fopen("f:\\lee.txt","rw"); //打开文件
fseek(fp,0,SEEK_END); //设置的文件末尾
int len = ftell(fp); //获取指针位置,从而获取文件大小
cout << "文件大小:" << len << endl;
}
作者:Leeboy_Wang
补充:软件开发 , C++ ,