请问 如何复制文件夹以及文件夹中的全部内容?
public static void CopyDir(string srcPath,string aimPath)
{
try
{
// 检查目标目录是否以目录分割字符结束如果不是则添加之
if(aimPath[aimPath.Length-1] != Path.DirectorySeparatorChar)
aimPath += Path.DirectorySeparatorChar;
// 判断目标目录是否存在如果不存在则新建之
if(!Directory.Exists(aimPath)) Directory.CreateDirectory(aimPath);
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
// 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
// string[] fileList = Directory.GetFiles(srcPath);
string[] fileList = Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach(string file in fileList)
{
// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
if(Directory.Exists(file))
CopyDir(file,aimPath+Path.GetFileName(file));
// 否则直接Copy文件
else
File.Copy(file,aimPath+Path.GetFileName(file),true);
}
}
catch (Exception e)
{
MessageBox.Show (e.ToString());
}
}
在网上看到这个,不过path 和directory 不知道是什么来的?好象不是自己定义的!请大家帮忙
问题点数:20、回复次数:5Top
1 楼netsys2(来电!)回复于 2006-01-09 14:36:06 得分 0
这不是CB的,path 和directory都是两个类库。Top
2 楼CBC_std(eric cai)回复于 2006-01-09 14:48:05 得分 0
那在CB 下应该怎么做呢 ?Top
3 楼ccrun(老妖)(www.ccrun.com)回复于 2006-01-09 14:48:57 得分 20
试试这个吧:
复制文件夹C:\111到C:\222
SHFILEOPSTRUCT op;
String strFrom = "C:\\111\0", strTo = "c:\\222\0";
op.hwnd = NULL;
op.wFunc = FO_COPY; // FO_MOVE:移动, FO_COPY:拷贝, FO_DELETE:删除, FO_RENAME:更名
op.pFrom = strFrom.c_str();
op.pTo = strTo.c_str();
op.fFlags = FOF_WANTNUKEWARNING;
::SHFileOperation(&op);
Top
4 楼hellolongbin(一个人(自从扩充话题改版,再也不去灌水乐园了))回复于 2006-01-09 14:55:52 得分 0
用windows API SHFILEOPSTRUCT 就可以实现了Top
5 楼CBC_std(eric cai)回复于 2006-01-09 16:30:14 得分 0
我知道两种方法了! thanksTop




