C++ 文件的復制、刪除、重命名


 

一、文件的復制

#include <iostream>
#include <fstream>
using namespace std;

int CopyFile(char *SourceFile,char *NewFile)
{
ifstream in;
ofstream out;
in.open(SourceFile,ios::binary);//打開源文件
if(in.fail())//打開源文件失敗
{
   cout<<"Error 1: Fail to open the source file."<<endl;
   in.close();
   out.close();
   return 0;
}
out.open(NewFile,ios::binary);//創建目標文件 
if(out.fail())//創建文件失敗
{
   cout<<"Error 2: Fail to create the new file."<<endl;
   out.close();
   in.close();
   return 0;
}
else//復制文件
{
   out<<in.rdbuf();
   out.close();
   in.close();
   return 1;
}
}
void main()
{
char source[256],NewFile[256];
cout<<"請輸入要復制的文件路徑:"<<endl;
cin>>source;
cout<<"請輸入新文件的路徑:"<<endl;
cin>>NewFile;
if(CopyFile(source,NewFile))
{
   cout<<"文件已成功復制..."<<endl;
}
else
{
   cout<<"文件復制失敗..."<<endl;
}
cin.get();
cin.get();
}

二、文件的刪除

#include <iostream.h>
#include <windows.h>
#include <io.h>

void main()
{
char source[256];//文件路徑
cout<<"請輸入要刪除的文件路徑:"<<endl;
cin>>source;

/* _access(char *,int) 判斷文件是否存在
存在 返回0;不存在 返回-1.
_access(const char *path,int mode)
mode的值:
00 是否存在
02 寫權限
04 讀權限
06 讀寫權限
*/
if(!_access(source,0))//如果文件存在:文件為只讀無法刪除
{
//去掉文件只讀屬性
SetFileAttributes(source,0);
if(DeleteFile(source))//刪除成功
{
   cout<<source<<" 已成功刪除."<<endl;
}
else//無法刪除:文件只讀或無權限執行刪除
{
   cout<<source<<" 無法刪除:文件為只讀屬性或無刪除權限."<<endl;
}
}
else//文件不存在
{
cout<<source<<" 不存在,無法刪除."<<endl;
}

cin.get();
}

 

三 文件的重命名

#include <iostream.h>
#include <windows.h>
#include <io.h>

void main()
{
char source[256];//文件路徑
char newname[256];
cout<<"請輸入要重命名的文件路徑:"<<endl;
cin>>source;
cout<<"請輸入文件的新名稱:"<<endl;
cin>>newname;

if(!_access(source,0))//如果文件存在:
{
if(!rename(source,newname))//刪除成功
{
   cout<<source<<" 成功重命名為: "<<newname<<endl;
}
else//無法重命名:文件打開或無權限執行重命名
{
   cout<<"文件無法重命名(可能原因如下):"<<endl;
   cout<<"\t"<<"1. "<<newname<<" 已存在"<<endl
    <<"\t"<<"2. "<<newname<<" 正在使用,未關閉."<<endl
    <<"\t"<<"3. "<<"你沒有權限重命名此文件."<<endl;
}
}
else//文件不存在
{
cout<<source<<" 不存在,無法重命名."<<endl;
}
cin.get();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM