文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>VC文件复制函数

VC文件复制函数

时间:2010-11-19  来源:秩名

  今天来学习VC文件操作。

  新建一个类PubFun.cpp

  头文件

  #pragma once

  //---------------------------------------------------------------------------------

  //功能:复制文件

  //参数:

  //返回值:

  //说明:

  BOOL CommonCopyFile(CString SourceFileName, CString DestFileName);

  大气象

  #include "stdafx.h"

  #include "PubFun.h"

  BOOL CommonCopyFile(CString SourceFileName, CString DestFileName)

  {

  CFile sourceFile ;

  CFile destFile ;

  CFileException ex;

  if (!sourceFile.Open((LPCTSTR)SourceFileName,CFile::modeRead | CFile::shareDenyWrite, &ex))

  {

  TCHAR szError[1024];

  ex.GetErrorMessage(szError, 1024);

  CString ErrorMsg = _T("打开文件:") ;

  ErrorMsg += SourceFileName ;

  ErrorMsg += _T("失败。\n错误信息为:\n") ;

  ErrorMsg += szError ;

  AfxMessageBox(ErrorMsg);

  return FALSE ;

  }

  else

  {

  if (!destFile.Open((LPCTSTR)DestFileName, CFile::modeWrite | CFile::shareExclusive | CFile::modeCreate, &ex))

  {

  TCHAR szError[1024];

  ex.GetErrorMessage(szError, 1024);

  CString ErrorMsg = _T("创建文件:") ;

  ErrorMsg += DestFileName ;

  ErrorMsg += _T("失败。\n错误信息为:\n") ;

  ErrorMsg += szError ;

  AfxMessageBox(ErrorMsg);

  sourceFile.Close();

  return FALSE ;

  }

  BYTE buffer[4096];

  DWORD dwRead;

  do

  {

  dwRead = sourceFile.Read(buffer, 4096);

  destFile.Write(buffer, dwRead);

  }

  while (dwRead > 0);

  destFile.Close();

  sourceFile.Close();

  }

  return TRUE ;

  }

  调用的时候不要忘了添加引用。

  #include "PubFun.h"

  //文件复制

  CommonCopyFile(_T("C:\\test.txt"),_T("D:\\test.txt"));

  参考更多:

  总结一下SHFileOperation的用法,希望对大家有用

  //删除文件或者文件夹

  bool DeleteFile(char * lpszPath)

  {

  SHFILEOPSTRUCT FileOp={0};

  FileOp.fFlags = FOF_ALLOWUNDO | //允许放回回收站

  FOF_NOCONFIRMATION; //不出现确认对话框

  FileOp.pFrom = lpszPath;

  FileOp.pTo = NULL; //一定要是NULL

  FileOp.wFunc = FO_DELETE; //删除操作

  return SHFileOperation(&FileOp) == 0;

  }

  //复制文件或文件夹

  bool CopyFile(char *pTo,char *pFrom)

  {

  SHFILEOPSTRUCT FileOp={0};

  FileOp.fFlags = FOF_NOCONFIRMATION| //不出现确认对话框

  FOF_NOCONFIRMMKDIR ; //需要时直接创建一个文件夹,不需用户确定

  FileOp.pFrom = pFrom;

  FileOp.pTo = pTo;

  FileOp.wFunc = FO_COPY;

  return SHFileOperation(&FileOp) == 0;

  }

 

  //移动文件或文件夹

  bool MoveFile(char *pTo,char *pFrom)

  {

  SHFILEOPSTRUCT FileOp={0};

  FileOp.fFlags = FOF_NOCONFIRMATION| //不出现确认对话框

  FOF_NOCONFIRMMKDIR ; //需要时直接创建一个文件夹,不需用户确定

  FileOp.pFrom = pFrom;

  FileOp.pTo = pTo;

  FileOp.wFunc = FO_MOVE;

  return SHFileOperation(&FileOp) == 0;

  }

  //从命名文件或文件夹

  bool ReNameFile(char *pTo,char *pFrom)

  {

  SHFILEOPSTRUCT FileOp={0};

  FileOp.fFlags = FOF_NOCONFIRMATION; //不出现确认对话框

  FileOp.pFrom = pFrom;

  FileOp.pTo = pTo;

  FileOp.wFunc = FO_RENAME;

  return SHFileOperation(&FileOp) == 0;

  }

  应用举例:

  DeleteFile("d:\\PID\0\0"); //删除一个文件夹

  DeleteFile("d:\\PID.dsp\0d:\\PID.dsw\0\0"); //删除多个文件

  CopyFile("d:\0\0","D:\\MyProjects\\临时程序\0\0"); //把"临时程序"文件夹放到d盘下面

  CopyFile("d:\0\0","D:\\MyProjects\\临时程序临时程序\\PID.dsw\0"); //把PID.dsp和PID.dsw俩个文件放到d盘下面

  ReNameFile("d:\\NewName","d:\\PID\0\0"); \\把PID文件夹从命名为NewName

  注意:,如果你想把"D:\\MyProjects\\临时程序\0\0"的文件夹复制到D盘下,并从命名为NewName,应该这样

  CopyFile("d:\\NewName\0\0","D:\\MyProjects\\临时程序\\*.*\0\0"); //把"临时程序"文件夹复制到d盘下并从命名为"NewName"

  下面这个类方便你复制多个文件或文件夹,仅作参考

  //连接多个路径的类

  class JOINFILEPATH

  {

  private:

  int pos;

  char* MultipleFilePath;

  public:

  JOINFILEPATH()

  {

标签分类: VC

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载