如何实现目录之间的拷贝?

yzh0313 2008-06-11 10:18:51
菜鸟有几个问题在此请教各位大虾:

用C#与VS2002开发Winform系统.

1. 如何实现目录之间的拷贝.
也就是将一目录下所有的文件和子目录拷贝至另外一目录下.在VS2005中好象有CopyDirectory()方法实现如上功能,但在VS2002中无此方法,请问这种情况下应该如何实现所述功能.


2. 如何获取路径.
目的:实现文件的拷贝,将源路径下的文件拷贝至目标路径,要求将目标路径写进INI配置文件中,且目标路径由用户自己来选择,不能在文本框中直接输入目标路径,而是希望通过例如保存文件一样的对话框来选择所需之路径,该如何实现?

3.通过相对路径如何获得绝对路径.
在ASP.NET中曾经用过Server.MapPath("文件名")方式来获取文件的绝对路径,不知道在VS2002中开发WinForm系统该如何实现.
...全文
114 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
blue_maple 2008-06-12
  • 打赏
  • 举报
回复
问个题外话,我纳闷你们说的vs2002是哪个版本我怎么没听过,额只听过vs2003,2005,2008???
汉升软件 2008-06-12
  • 打赏
  • 举报
回复
用FileUpload.SaveAs不知道VS2002有沒有這個方法

string name = FileUpload1.PostedFile.FileName;
FileInfo file = new FileInfo(name);
string fileName = file.Name;
webFilePath = Server.MapPath("Photo/" + fileName);
src = "Photo/" + fileName;
FileUpload1.SaveAs(webFilePath);
Image1.ImageUrl = src;
FileStream fs;
fs = File.OpenRead("" + webFilePath + "");
byte[] imagedata = new byte[fs.Length];
int count = (int)fs.Length;
fs.Read(imagedata, 0, count);
Conn.Open();
StrSql = "update product set imagedata=@imagedata,src=@src where pid='" + pid + "'";
cmd = new SqlCommand(StrSql, Conn);
cmd.Parameters.AddWithValue("@imagedata", imagedata);
cmd.Parameters.AddWithValue("@src", src);
wxg22526451 2008-06-12
  • 打赏
  • 举报
回复
目标拷贝
using System.IO;
               private static void CopyDirectory(DirectoryInfo OldDirectory, DirectoryInfo NewDirectory)
{
string NewDirectoryFullName = NewDirectory.FullName + @"\" + OldDirectory.Name;

if ( !Directory.Exists(NewDirectoryFullName) )
Directory.CreateDirectory(NewDirectoryFullName);

FileInfo[] OldFileAry = OldDirectory.GetFiles();
foreach (FileInfo aFile in OldFileAry)
File.Copy(aFile.FullName, NewDirectoryFullName + @"\" + aFile.Name, true);

DirectoryInfo[] OldDirectoryAry = OldDirectory.GetDirectories();
foreach ( DirectoryInfo aOldDirectory in OldDirectoryAry )
{
DirectoryInfo aNewDirectory = new DirectoryInfo(NewDirectoryFullName);
CopyDirectory(aOldDirectory, aNewDirectory);
}
}

//CopyDirectory
public static void CopyDirectory(string OldDirectoryStr, string NewDirectoryStr)
{
DirectoryInfo OldDirectory = new DirectoryInfo( OldDirectoryStr );
DirectoryInfo NewDirectory = new DirectoryInfo( NewDirectoryStr );
FileExec.CopyDirectory(OldDirectory,NewDirectory);
}
blue_maple 2008-06-12
  • 打赏
  • 举报
回复
参考这篇文章http://www.moon-soft.com/doc/23511.htm;
正好自己也学习了下
yilanwuyu123 2008-06-12
  • 打赏
  • 举报
回复
找到路径 操作file类
drummery 2008-06-12
  • 打赏
  • 举报
回复
1. 如何实现目录之间的拷贝.

循环遍历,查一下System.IO里的方法。

2. 如何获取路径.

FolderBrowserDialog控件,SelectedPath获取选择路径。

3.通过相对路径如何获得绝对路径.

WinForm默认就是绝对路径吧?
jzywh 2008-06-12
  • 打赏
  • 举报
回复
直接递归遍历不就够了
amandag 2008-06-11
  • 打赏
  • 举报
回复
现在还用VS2002?
懒牛科技 2008-06-11
  • 打赏
  • 举报
回复
system.io

110,536

社区成员

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

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

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