vc关于文件拷贝

Posted 风翼科技

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vc关于文件拷贝相关的知识,希望对你有一定的参考价值。

单个文件的拷贝

 system  针对单个文件

CopyFile  针对单个文件

/**
@file_extension egg: .txt .png
**/
void CopyFileToDir(CString source_dir, TCHAR* dest_dir, TCHAR* file_extension) {
CString source, dest;
source.Format("%s*%s", source_dir, file_extension);
dest.Format("%s", dest_dir);
SHFILEOPSTRUCT s;
::ZeroMemory(&s, sizeof(s)); // Initialize the structure
s.hwnd = NULL;
s.wFunc = FO_COPY;
s.pFrom = source;
s.pTo = dest;
s.fFlags = FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
::SHFileOperation(&s);
//可用支持批量处理拷贝,支持单个文件拷贝,
//如果拷贝的目标目录路径或源目录路径里面带下划线,不能正常拷贝,不知道为什么??

  //s.wFunc = FO_MOVE; 如果移动的目标目录路径或源目录路径里面带下划线
//能正常移动文件

 

//CString cmd;
//char   buffer[MAX_PATH];
//_getcwd(buffer, MAX_PATH);
//cmd.Format("COPY %s %s ", "C:\\Users\\jack\\Desktop\\copy_from\\*.jpg", buffer);
//system(cmd);
//不可用 system仅仅支持文件对文件的拷贝

 

//system("COPY C:\\Users\\jack\\Desktop\\copyfrom\\*.jpg ./");//不可用,不能使用文件拷贝到目录
//不可用 system仅仅支持文件对文件的拷贝

 

system(

"COPY

C:\\Users\\jack\\Desktop\\copyfrom\\1345233921.jpg

C:\\Users\\jack\\Desktop\\copyfrom\\xxxxxxxxxxxxxxxxxxxx.jpg");

//可用 system支持文件对文件的拷贝

 

system("COPY

C:\\Users\\jack\\Desktop\\copy_from\\1345233921.jpg

C:\\Users\\jack\\Desktop\\copy_from\\xxxxxxxxxxxxxxxxxxxx.jpg"); 

  //可用 支持带下划线的目录拷贝

 

bool bFailIfExists=false;
CopyFile(

"C:\\Users\\jack\\Desktop\\copyfrom\\1345233921.jpg",

"C:\\Users\\jack\\Desktop\\copyfrom\\xxxxxxxxxxxxxxxxxxxx.jpg", bFailIfExists);

//可用 CopyFile只针对文件对文件的处理,不支持批量导入

 

CopyFile("C:\\Users\\jack\\Desktop\\copyfrom\\1345233921.jpg", "./xxxxxxxxxxxx.jpg", bFailIfExists);
//可用  CopyFile只针对文件对文件的处理,支持当前目录 不支持批量导入

 

bool bFailIfExists=false;
CopyFile("C:\\Users\\jack\\Desktop\\copy_from\\1345233921.jpg", "C:\\Users\\jack\\Desktop\\copy_from\\xxxxxxxxxxxxxxxxxxxx.jpg", bFailIfExists);

  //可用 支持带下划线的目录拷贝

 

//CopyFile("C:\\Users\\jack\\Desktop\\copyfrom\\1345233921.jpg", "./", bFailIfExists);
//不可用 不支持文件对目录

 

//CopyFile("C:\\Users\\jack\\Desktop\\copyfrom\\*.jpg", "./xxxxxxxxxxxx.jpg", bFailIfExists);
//不可用 不支持批量处理

 

}

 

以上是关于vc关于文件拷贝的主要内容,如果未能解决你的问题,请参考以下文章

iOS 关于数组深拷贝 initWithArray:copyItems: 方法的讨论

Android 关于文件及文件夹的创建 删除重命名复制拷贝

VS20xx IDE开发应用时_拷贝VS环境的库文件DLL到目标设备上运行的操作步骤

急切求高手编写一个 java程序,大体是关于IO流的文件拷贝

关于c++拷贝构造函数

应用多线程解决文件拷贝加进度条项目