文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>用C#实现文件夹拷贝

用C#实现文件夹拷贝

时间:2011-05-23  来源:傅红雪2011

C#中没有拷贝整个文件夹的方法,最近需要用到,就写了一个Demo,拿出来跟大家分享一下

主要思想:

1、写一个拷贝文件夹的函数CopyFolder,传入源文件夹路径和目的文件夹路径

2、判断目的文件夹路径是否存在,如果不存在,创建此文件夹

3、获取源文件夹下的所有文件,拷贝这些文件到目的文件夹

4、获取源文件夹下的所有文件夹,循环调用CopyFolder(此处利用了递归)

代码:

拷贝文件夹
using System;
using System.IO;

namespace FolderService
{
public class FolderService
{
static void Main(string[] args)
{
if (args.Length != 2)
{
Console.WriteLine(
"请输入源文件夹地址和目的文件夹地址!");
return;
}

// 判断源文件夹是否存在
if (!Directory.Exists(args[0]))
{
Console.WriteLine(
"源文件夹不存在!");
return;
}

// 拷贝文件夹
FolderService copy = new FolderService();
string flag = copy.CopyFolder(args[0], args[1]);
Console.WriteLine(flag);
}

/// <summary>
/// Copy文件夹
/// </summary>
/// <param name="sPath">源文件夹路径</param>
/// <param name="dPath">目的文件夹路径</param>
/// <returns>完成状态:success-完成;其他-报错</returns>
public string CopyFolder(string sPath, string dPath)
{
string flag = "success";
try
{
// 创建目的文件夹
if (!Directory.Exists(dPath))
{
Directory.CreateDirectory(dPath);
}

// 拷贝文件
DirectoryInfo sDir = new DirectoryInfo(sPath);
FileInfo[] fileArray
= sDir.GetFiles();
foreach (FileInfo file in fileArray)
{
file.CopyTo(dPath
+ "\\" + file.Name, true);
}

// 循环子文件夹
DirectoryInfo dDir = new DirectoryInfo(dPath);
DirectoryInfo[] subDirArray
= sDir.GetDirectories();
foreach (DirectoryInfo subDir in subDirArray)
{
CopyFolder(subDir.FullName, dPath
+ "//" + subDir.Name);
}
}
catch (Exception ex)
{
flag
= ex.ToString();
}
return flag;
}
}
}

测试Dmo:

1、把代码保存为FolderService.cs,把此cs文件放到H:\Program Files\Microsoft Visual Studio 9.0\VC下(具体根据VS安装路径不同,地址有所不同)

2、打开Visual Studio Tools中的Visual Studio 2008 Command Prompt,把FolderService.cs拖到此Command Prompt中,在路径最前方加入csc+空格,回车编译此程序,如下图:

3、可以在目录H:\Program Files\Microsoft Visual Studio 9.0\VC中看到生成了一个FolderService.exe文件,运行此文件(打开cmd.exe,把FolderService.exe拖到cmd.exe中,加上参数,回车),如下图:

4、这时可以看到,E:\test目录下的文件全部都拷贝到G:\test目录下了

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

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载