面试题求教---文件迁移

ChargeForward 2011-11-10 04:34:14
两个文件路径A,B, A中有不确定数量的文件和文件夹, B为空文件夹.
需求实现一个多线程的接口, 把A中的东西原样搬到B中. A和B有可能在不同网络机器上, 但都可以访问.


public interface IMoveFiles
{
void Move(string pathA,string pathB,int threadCount);
}


请实现此接口, 并使此接口尽可能快的完成任务。
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChargeForward 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sandy945 的回复:]
线程池
[/Quote]
理论层面基本都懂, 请给出详细代码
阿非 2011-11-10
  • 打赏
  • 举报
回复
线程池
ChargeForward 2011-11-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thinkingforever 的回复:]
因为你是跨网络;所以如果程序运行在B机器上,就必须登录A机器,反之亦然。
Process myProcess = Process.Start("CMD", @"/c net use \\" + serverip + " " + password + @" /user:" + username);
myProcess.StartInfo.CreateNoWindow = true;
……
[/Quote]
先解决同一台机器吧
student_jianwen 2011-11-10
  • 打赏
  • 举报
回复
貌似 不怎懂 学习了。。。。
a-zhwang 2011-11-10
  • 打赏
  • 举报
回复
尽量快,那先得到文件列表,然后启动多个线程去一起copy文件。
thinkingforever 2011-11-10
  • 打赏
  • 举报
回复
因为你是跨网络;所以如果程序运行在B机器上,就必须登录A机器,反之亦然。
Process myProcess = Process.Start("CMD", @"/c net use \\" + serverip + " " + password + @" /user:" + username);
myProcess.StartInfo.CreateNoWindow = true;
myProcess.WaitForExit(2000);
myProcess.Close();


DirectoryInfo olddir = new DirectoryInfo(pathA);
FileInfo[] fileInfos=olddir.GetFiles();
foreach (FileInfo f in fileInfos)
{
f.MoveTo(pathB+f.Name);
}

110,545

社区成员

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

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

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