WinForm(C#)复制文件夹(文件)问题

1.我想将C:\abc文件夹复制到D:\下面怎么办呀?麻烦高手给下代码;2.将C:\aa.txt文件复制到D:\下面怎么办?这两种情况能用一个方法来解决吗?麻烦高手告诉下... 1. 我想将 C:\abc文件夹复制到 D:\ 下面怎么办呀?麻烦高手给下代码;
2. 将C:\aa.txt 文件复制到 D:\ 下面怎么办? 这两种情况能用一个方法来解决吗? 麻烦高手告诉下,最好是代码?
成功执行绝对加分....
展开
 我来答
百度网友59da897
2009-08-26 · TA获得超过268个赞
知道小有建树答主
回答量:477
采纳率:0%
帮助的人:406万
展开全部
这是我用过的一个方法,保管好用,你直接调用就可以了!(第二个问题很简单,如一楼所言)

/// <summary>
/// 将整个文件夹复制到目标文件夹中。
/// </summary>
/// <param name="srcPath">源文件夹</param>
/// <param name="aimPath">目标文件夹</param>
/// <returns></returns>
public bool 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.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);
}
}

return true;
}
catch
{
return false;
}
}
光影私房课
推荐于2016-08-10 · TA获得超过435个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:329万
展开全部
文件复制:File.Copy(fnsrc, fndes, true);第三个参数表示是否替代同名文件;
文件夹复制可以遍历文件夹进行复制。
刚出炉,热的。。。。建立一个form,一个按钮下实现的,测试通过:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace CopyDirectory
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
CopyDirectory("c:\\downloads","d:\\");
}

/// <summary>
/// 拷贝文件夹
///By Wang Hw www.pegete.com.cn
/// </summary>
/// <param name="srcdir"></param>
/// <param name="desdir"></param>
private void CopyDirectory(string srcdir, string desdir)
{
string folderName = srcdir.Substring(srcdir.LastIndexOf("\\")+1);

string desfolderdir = desdir +"\\"+ folderName;

if (desdir.LastIndexOf("\\") == (desdir.Length - 1))
{
desfolderdir = desdir + folderName;
}
string[] filenames = Directory.GetFileSystemEntries(srcdir);

foreach (string file in filenames)// 遍历所有的文件和目录
{
if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
{

string currentdir = desfolderdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
if (!Directory.Exists(currentdir))
{
Directory.CreateDirectory(currentdir);
}

CopyDirectory(file, desfolderdir);
}

else // 否则直接copy文件
{
string srcfileName = file.Substring(file.LastIndexOf("\\")+1);

srcfileName = desfolderdir + "\\" + srcfileName;

if (!Directory.Exists(desfolderdir))
{
Directory.CreateDirectory(desfolderdir);
}

File.Copy(file, srcfileName);
}
}//foreach
}//function end

}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
道振梅理云
2019-08-21 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:923万
展开全部
你可能要的功能都替你想到了~~
18.复制文件
//using
System.IO;
File.Copy(%%1,%%2);
13.复制文件夹
/*
using
System.IO;
using
System.Collections;
*/
string
path
=
(%%2.LastIndexOf("\\")
==
%%2.Length
-
1)
?
%%2
:
%%2+"\\";
string
parent
=
Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path
+
Path.GetFileName(%%1));
%%1
=
(%%1.LastIndexOf("\\")
==
%%1.Length
-
1)
?
%%1
:
%%1
+
"\\";
DirectoryInfo
dir
=
new
DirectoryInfo(%%1);
FileSystemInfo[]
fileArr
=
dir.GetFileSystemInfos();
Queue
Folders
=
new
Queue
(dir.GetFileSystemInfos());
while
(Folders.Count>0)
{
FileSystemInfo
tmp
=
Folders.Dequeue();
FileInfo
f
=
tmp
as
FileInfo;
if
(f
==
null)
{
DirectoryInfo
d
=
tmp
as
DirectoryInfo;
Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\\")
==
parent.Length
-
1)
?
parent
:
parent
+
"\\",
path));
foreach
(FileSystemInfo
fi
in
d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.CopyTo(f.FullName.Replace(parent,
path));
}
}
14.复制目录下所有的文件夹到另一个文件夹下
/*
using
System.IO;
using
System.Collections;
*/
DirectoryInfo
d
=
new
DirectoryInfo(%%1);
foreach
(DirectoryInfo
dirs
in
d.GetDirectories())
{
Queue
al
=
new
Queue
(dirs.GetFileSystemInfos());
while
(al.Count
>
0)
{
FileSystemInfo
temp
=
al.Dequeue();
FileInfo
file
=
temp
as
FileInfo;
if
(file
==
null)
{
DirectoryInfo
directory
=
temp
as
DirectoryInfo;
Directory.CreateDirectory(path
+
directory.Name);
foreach
(FileSystemInfo
fsi
in
directory.GetFileSystemInfos())
al.Enqueue(fsi);
}
else
File.Copy(file.FullName,
path
+
file.Name);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
祚胤17
2009-08-26 · TA获得超过786个赞
知道大有可为答主
回答量:1149
采纳率:82%
帮助的人:264万
展开全部
你可能要的功能都替你想到了~~

18.复制文件
//using System.IO;
File.Copy(%%1,%%2);

13.复制文件夹
/*
using System.IO;
using System.Collections;
*/
string path = (%%2.LastIndexOf("\\") == %%2.Length - 1) ? %%2 : %%2+"\\";
string parent = Path.GetDirectoryName(%%1);
Directory.CreateDirectory(path + Path.GetFileName(%%1));
%%1 = (%%1.LastIndexOf("\\") == %%1.Length - 1) ? %%1 : %%1 + "\\";
DirectoryInfo dir = new DirectoryInfo(%%1);
FileSystemInfo[] fileArr = dir.GetFileSystemInfos();
Queue<FileSystemInfo> Folders = new Queue<FileSystemInfo>(dir.GetFileSystemInfos());
while (Folders.Count>0)
{
FileSystemInfo tmp = Folders.Dequeue();
FileInfo f = tmp as FileInfo;
if (f == null)
{
DirectoryInfo d = tmp as DirectoryInfo;
Directory.CreateDirectory(d.FullName.Replace((parent.LastIndexOf("\\") == parent.Length - 1) ? parent : parent + "\\", path));
foreach (FileSystemInfo fi in d.GetFileSystemInfos())
{
Folders.Enqueue(fi);
}
}
else
{
f.CopyTo(f.FullName.Replace(parent, path));
}
}

14.复制目录下所有的文件夹到另一个文件夹下
/*
using System.IO;
using System.Collections;
*/
DirectoryInfo d = new DirectoryInfo(%%1);
foreach (DirectoryInfo dirs in d.GetDirectories())
{
Queue<FileSystemInfo> al = new Queue<FileSystemInfo>(dirs.GetFileSystemInfos());
while (al.Count > 0)
{
FileSystemInfo temp = al.Dequeue();
FileInfo file = temp as FileInfo;
if (file == null)
{
DirectoryInfo directory = temp as DirectoryInfo;
Directory.CreateDirectory(path + directory.Name);
foreach (FileSystemInfo fsi in directory.GetFileSystemInfos())
al.Enqueue(fsi);
}
else
File.Copy(file.FullName, path + file.Name);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孙中吕
2009-08-26 · 专注C/S架构开发框架技术研究
孙中吕
采纳数:435 获赞数:788

向TA提问 私信TA
展开全部
File.Copy("C:\aa.txt","d:\aa.txt");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式