public void CopyDir(string path, string destPath)
{
DirectoryInfo source = new DirectoryInfo(path);
DirectoryInfo target = new DirectoryInfo(destPath);
if(source.Exists)
{
if(!target.Parent.Exists)
throw new Exception();
if(!target.Exists)
target.Create();
foreach(FileInfo file in source.GetFiles)
{
file.CopyTo(...);
}
foreach(DirectoryInfo dir in source.GetDirectories())
{
CopyDir(dir.FullName, Path.Combine(target.FullName,dir.Name));
}
}
{
DirectoryInfo source = new DirectoryInfo(path);
DirectoryInfo target = new DirectoryInfo(destPath);
if(source.Exists)
{
if(!target.Parent.Exists)
throw new Exception();
if(!target.Exists)
target.Create();
foreach(FileInfo file in source.GetFiles)
{
file.CopyTo(...);
}
foreach(DirectoryInfo dir in source.GetDirectories())
{
CopyDir(dir.FullName, Path.Combine(target.FullName,dir.Name));
}
}
解决方案 »
- 【asp.net(C#)】web页面打印
- C# winform 水晶报表 数据不显示问题
- url重写部署在iis6.0中出现问题
- 请求以验证码为基础的登录页面(帮忙找原因)
- 简单的asp.net网站配置问题,顶者有分!
- Active控件读数据库遇到的问题,请进入看详情。如能解决可以再加一百分。
- AJAX控件拖拽问题
- 关于两个webform换肤的问题
- 跪求急用treeview的问题
- 招聘:如果你有数据库开发的经验,欢迎加盟!!!
- crystal report 9.2.2升级和ce10下载问题
- 谁能帮我改改这句代码 int ProductID =(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
{
int ret = 0;
foreach(Directive directive in Directives)
{
if (SetCancel)
{
if (AskBeforeAbort())
{
//cancel for real
BackupCompleteEvent(EventArgs.Empty);
return 0;
}
}
ret += CountFilesInDir(new DirectoryInfo(directive.SrcDir));
}
return ret;
} public void StartBackup()
{
foreach (Directive directive in Directives)
{
if (SetCancel)
{
if (AskBeforeAbort())
{
//cancel for real
BackupCompleteEvent(EventArgs.Empty);
return;
}
}
BackupDir(directive.SrcDir, directive.DestDir, directive.Overwrite);
}
BackupCompleteEvent(EventArgs.Empty);
} public int CountFilesInDir(DirectoryInfo rootDirInfo)
{
int fileCount = 0;
FileInfo[] fileInfos = rootDirInfo.GetFiles();
foreach (FileInfo fi in fileInfos)
{
fileCount ++;
}
DirectoryInfo[] subDirInfos = rootDirInfo.GetDirectories();
foreach (DirectoryInfo subDirInfo in subDirInfos)
{
fileCount = fileCount + CountFilesInDir(subDirInfo);
}
return fileCount;
}
public void BackupDir(string srcDir, string destDir, bool overwrite)
{
DirectoryInfo srcDirInfo = new DirectoryInfo(srcDir); if (!(Directory.Exists(destDir)))
{
DirectoryInfo di = new DirectoryInfo(destDir);
di.Create();
} FileInfo[] fileInfos = srcDirInfo.GetFiles();
foreach (FileInfo fi in fileInfos)
{
string targetPath = Path.Combine(destDir, fi.Name);
if (File.Exists(targetPath))
{
if (fi.LastWriteTimeUtc > new FileInfo(targetPath).LastWriteTimeUtc) // overwrite
{
BackupEventArgs e = new BackupEventArgs(OperationTypeEnum.Overwrite, fi.FullName, targetPath);
BackupProcessEvent(e);
try
{
fi.CopyTo(targetPath, true);
}
catch (IOException)
{ }
}
else // skip
{
BackupEventArgs e = new BackupEventArgs(OperationTypeEnum.Skip, fi.FullName, targetPath);
BackupProcessEvent(e);
}
}
else // copy
{
BackupEventArgs e = new BackupEventArgs(OperationTypeEnum.Copy, fi.FullName, targetPath);
BackupProcessEvent(e);
try
{
fi.CopyTo(targetPath, true);
}
catch (IOException)
{
//do something here later...
}
}
}
DirectoryInfo[] dirInfos = srcDirInfo.GetDirectories();
foreach (DirectoryInfo di in dirInfos)
{
BackupDir(di.FullName, Path.Combine(destDir, di.Name), overwrite);
}
}
找到
System.io.Directory这个类和
System.io.File这个类
用他们的方法就ok了,
在一种就是用
System.Diagnostics.Process.start("copy d:\a d:\b");
<asp:TextBox id="IDtb" style="Z-INDEX: 101; LEFT: 304px; POSITION: absolute; TOP: 80px" runat="server"></asp:TextBox>
<INPUT id="UP_FILE2" style="Z-INDEX: 102; LEFT: 8px; WIDTH: 246px; POSITION: absolute; TOP: 8px; HEIGHT: 22px" type="file" size="21" name="UP_FILE2" RUNAT="server">
<asp:button id="upbutton" style="Z-INDEX: 103; LEFT: 296px; POSITION: absolute; TOP: 8px" runat="server" Text="上传"></asp:button
</form>private void upbutton_Click(object sender, System.EventArgs e)
{
string tofolderPath= Server.MapPath("../mtebook/"+IDtb.Text+"/");//虚拟目录下有个mtebook文件夹
string fromfolderPath=UP_FILE2.Value.ToString().Substring(0,UP_FILE2.Value.ToString().LastIndexOf(@"\"));
DirectoryInfo source = new DirectoryInfo(fromfolderPath);
Directory.CreateDirectory(tofolderPath);
DirectoryInfo target = new DirectoryInfo(tofolderPath);
if(source.Exists)
{
FileInfo[] filesources = source.GetFiles();
foreach (FileInfo filesource in filesources)
{
filesource.CopyTo( tofolder+filesource.Name,true);
}
}
}
谢谢楼上仁兄的帮助,这段程序我能试过了好使!