winform

菜鸟王小凡 2012-04-13 04:09:49
请问一下 、 、 问一下 、 。那那些 帮助文档看 、 、


关于winform、 、 我现在用folderBrowserDialog1.SelectedPath; 获取一个目录 、 、我想把这个 目录下的文件 copy 到 另一个 地方 ( 例如:f盘\\新建文件夹) 怎么实现 ???谢谢谢 、、 、
...全文
95 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
熙风 2012-04-14
  • 打赏
  • 举报
回复
public void CopyFiles(string varFromDirectory, string varToDirectory)
{//实现从一个目录下完整拷贝到另一个目录下。
Directory.CreateDirectory(varToDirectory);
if (!Directory.Exists(varFromDirectory))
{
return;
}

string[] directories = Directory.GetDirectories(varFromDirectory);//取文件夹下所有文件夹名,放入数组;
if (directories.Length > 0)
{
foreach (string d in directories)
{
CopyFiles(d, varToDirectory + d.Substring(d.LastIndexOf("\\")));//递归拷贝文件和文件夹
}
}

string[] files = Directory.GetFiles(varFromDirectory);//取文件夹下所有文件名,放入数组;
if (files.Length > 0)
{
foreach (string s in files)
{
try
{
File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\\")), true);
}
catch
{
continue;
}
}
}
}
EnForGrass 2012-04-13
  • 打赏
  • 举报
回复
其实到MSDN看看Directory、File、FileInfo这几个类
传递正能量 2012-04-13
  • 打赏
  • 举报
回复
下面是一段源代码,个别地方需要修正    
类变量
private static int total = 0;
private int FileNumber = 0; //文件夹文件总数




调用
CopyDirectory(codeSourcePath + @"Site/",virtualDirPath + @"Site" + Path.DirectorySeparatorChar,statusForm);


/// <summary>
/// 复制文件夹
/// </summary>
/// <param name="sourceDirName">源文件夹</param>
/// <param name="destDirName">目标文件夹</param>
/// <param name="statusWinForm">状态窗口</param>

//复制文件夹

public void CopyDirectory( string sourceDirName, string destDirName,StatusWin statusWinForm)
{

if(!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
File.SetAttributes(destDirName, File.GetAttributes(sourceDirName));
//File.SetAttributes(destDirName,FileAttributes.Normal);
}

if (destDirName[destDirName.Length - 1] != Path.DirectorySeparatorChar)
destDirName = destDirName + Path.DirectorySeparatorChar;

string[] files = Directory.GetFiles(sourceDirName);
foreach (string file in files)
{
File.Copy(file,destDirName + Path.GetFileName(file), true);
File.SetAttributes(destDirName + Path.GetFileName(file),FileAttributes.Normal);
total++;
statusWinForm.progressBar1.Value = total;
if(FileNumber == 0)
{
statusWinForm.lblStatus.Text = "已完成 100%";
}
else
{
statusWinForm.lblStatus.Text = "已完成 " + (Math.Round((double)(100*total/FileNumber),0)).ToString() + "%";
}
statusWinForm.lblSourceFile.Text = file;
statusWinForm.lblFileName.Text = destDirName + Path.GetFileName(file);
statusWinForm.lblStatus.Refresh();
statusWinForm.lblFileName.Refresh();
statusWinForm.lblSourceFile.Refresh();

}


string[] dirs = Directory.GetDirectories(sourceDirName);
foreach (string dir in dirs)
{
statusWinForm.Refresh();
statusWinForm.Focus();
statusWinForm.Activate();
CopyDirectory(dir, destDirName + Path.GetFileName(dir),statusWinForm);
}
}

public static int GetFilesCount(System.IO.DirectoryInfo dirInfo)
{
int totalFile = 0;
totalFile += dirInfo.GetFiles().Length;
foreach (System.IO.DirectoryInfo subdir in dirInfo.GetDirectories())
{
totalFile += GetFilesCount(subdir);
}
return totalFile;
}



来源:http://blog.csdn.net/chenguang79/article/details/3877291
bdmh 2012-04-13
  • 打赏
  • 举报
回复
google c# 遍历目录,挨个的拷贝

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧