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();
}

时间: 2024-09-15 14:19:32

C++ 文件的复制、删除、重命名的相关文章

nodejs 文件与文件操作(读写文件 删除 重命名)

读写文件nodejs中操作相对就简单很多!来看看几个例子吧. [写文本文件] // wfile.js ------------------------------  代码如下 复制代码 var fs = require("fs");   var data = 'hello 雨林博客'; fs.writeFile('c:a.txt', data, 'ascii', function(err){  if(err){  console.log('写入文件失败');  }else{  cons

ASP.NET 在下载文件时对其重命名的思路及实现方法_实用技巧

有些时候为了保证文件再上传时不会覆盖掉之前上传的文件,同时由于上传的目标目录里的文件可能很多,这个时候一个一个查是不太好的事情,所以这里可以自动生成GUID使文件名重命名成GUID_原来的名称.扩展名.但是在下载的时候最好可能保证恢复到原来的名称.这个时候听伤神的.搜了一下相关资料后得知可使用response来解决.具体代码如下. [csharp]  复制代码 代码如下: <pre name="code" class="csharp">string pa

jquery实现鼠标右键弹窗删除/重命名等操作实例

在一些管理后台,我们会模拟windows系统鼠标右键的操作实现删除和重全名等,本文我们来告诉你用jquery如何实现. 1.因为window默认是可以右键的,所以我们要先禁用window原生的右键弹窗(禁用包括2个区域,1是鼠标右键的区域div 2是弹出窗口的div): //禁用区域右键$('body').on('contextmenu','.bottompage',function(){    return false;});$('body').on('contextmenu','#noteb

WordPress上传文件中文乱码(自动重命名)

下面以wordpress 3.2.1为例,打开wp-admin/includes/file.php文件,找到第326行这段代码:  代码如下 复制代码 // Move the file to the uploads dir $new_file = $uploads['path'] . "/$filename"; if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )         return $up

renameutils 0.12.0发布 文件重命名工具

rehttp://www.aliyun.com/zixun/aggregation/11696.html">nameutils(file renaming utilities的简写)是一款能够更快速和灵活的文件重命名程序.使用qmv允许在文本编辑器编辑文件名,目录中的所有文件名字被写入到一个文本文件,然后由用户编辑.文本文件可以读取和解析,并应用到更改的文件中.使用qcp复制文件来替代进行重命名.它允许一个文件名在终端使用GNU readline库进行编辑. renameutils 0.1

renameutils 0.11.0发布 文件重命名工具

rehttp://www.aliyun.com/zixun/aggregation/11696.html">nameutils文件重命名工具是一套旨在使重命名的文件更快和减少繁琐的程序设计.qmv("快速移动")允许在文本编辑器编辑文件名.目录中的所有文件的名字被写入到一个文本文件,然后由用户编辑.文本文件的读取和解析,并更改应用到文件. QCP复制文件,而不是重命名. IMV("互动式移动"),虽然微不足道,但很有用,当你懒得键入(甚至完全)文件名

Java实现文件批量重命名具体实例_java

Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应的文件进行重命名.此外,还可以在重命名模板中添加特殊符号,程序会将这些特殊符号替换成重命名后的文件编号. 思路分析: 1.先看视图层,需要一些JLabel控件分别显示指示用户的信息,三个JTextField控件分别显示所选路径.输入文件名模板即输入扩展名,两个JButton控件分别用来浏览文件夹和开

Shell脚本批量重命名文件后缀的3种实现_linux shell

今天突然间想起昨天有个问题还没动手实践下,就是利用shell批量修改文件的后缀,现在动手实践一下. 需求:家目录下有一些sql文件,想批量重命名成txt的 1.find + xargs +sed 复制代码 代码如下: find /root -name '*.sql' |xargs -i echo {}   {} |sed 's/sql/txt/2′  |xargs mv find /root/ -name '*.sql' |sed -e 's/\(.*\).sql$/mv & \1.txt/e'

VMware虚拟化环境无法重命名VMware ESXi/ESX 中的虚拟机及其文件的问题解决

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1417534 在使用 vSphere Client 登录到VMware ESXi/ESX或vCenter在清单中重命名虚拟机时默认只会更改显示名称,而不会更改数据存储中的对应文件(或者只能重命名文件夹名称,不能重命名其中的文件).但只有同时重命名存储中的虚拟机的目录名称(文件夹名称)和文件后才能保持与清单中虚拟机的名

Word如何重命名文件

  重命名文件操作会更改现有文件的文件名.如果有人已在任何程序中打开某个文件,则无法重命名该文件.必须关闭该文件,如果它是共享文件,还必须将它签入.可以用新名称保存打开的文件,但具有原始名称的该文件副本仍将存在. 1.在以下2007 Microsoft Office system 程序中执行相应的操作: 单击"Microsoft Office 按钮",然后单击"打开". 键盘快捷方式:要显示"打开"对话框,请按 Ctrl+O. 2.在"