zoukankan      html  css  js  c++  java
  • 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<<" "<<"1. "<<newname<<" 已存在"<<endl
        <<" "<<"2. "<<newname<<" 正在使用,未关闭."<<endl
        <<" "<<"3. "<<"你没有权限重命名此文件."<<endl;
    }
    }
    else//文件不存在
    {
    cout<<source<<" 不存在,无法重命名."<<endl;
    }
    cin.get();
    }

  • 相关阅读:
    带你了解什么是Push消息推送
    小白学习如何打日志
    最近学到的前后端分离知识
    记一次愚蠢的操作--线程安全问题
    在工作中常用到的SQL
    在工作中常用的Linux命令
    记一次愚蠢的经历--String不可变性
    在公司做的项目和自己在学校做的有什么区别?
    程序员的快乐就是这么朴素无华且枯燥
    《大型网站系统与Java中间件》读书笔记 (中)
  • 原文地址:https://www.cnblogs.com/lidabo/p/3324713.html
Copyright © 2011-2022 走看看