缘由:开发的程序中要求导入多个execl文件内容,导入成功后需要清空execl文件所在文件夹,并将导入的execl文件迁移到指定目录下。
文件导入目录:D:DerDic
文件迁移目录:D:BackCom
代码所执行的思路:
1.判断迁移目录是否存在
2.得到以日期作为迁移目录下子文件夹名称及全路径
3.判断当天是否已经导入过文件,程序是否已经执行过,将已有文件用新文件替换
代码:
public void GetDie(sting path, string backpath) {
if (Directory.Exists(backpath))//判断迁移文件目录是否存在 { string NewFileName = "CAP"+Senddate.ToString("yyMMdd");//以当前登录日为文件名称 string NewFilePath=backpath+@""+NewFileName;//文件夹路径 if (!Directory.Exists(NewFilePath))//判断是否已经存在当天的导入文件 { Directory.CreateDirectory(NewFilePath); } string[] execfile = Directory.GetFiles(path);//获取指定目录下所有文件名(包含路径) for (int r = 0; r < execfile.Length; r++) { string newfile = Path.GetFileName(execfile[r].ToString());//得到导入文件夹内文件名称及后缀名 string GolFilePath = NewFilePath + @"" + newfile;//迁移目录下的完整路径包含文件名称 if (File.Exists(GolFilePath)) { File.Delete(GolFilePath); } File.Move(execfile[r], GolFilePath); } } else { ScriptManager.RegisterClientScriptBlock(this, GetType(), "a", "alert('"+backpath+"目录不存在!');", true); } }
附msdn Directory.Move 方法
http://msdn.microsoft.com/zh-cn/library/system.io.directory.move(v=VS.80).aspx
Directory.Move 方法
public static void Move (
string sourceDirName,
string destDirName
)
参数
- sourceDirName
-
要移动的文件或目录的路径。
- destDirName
-
指向 sourceDirName 的新位置的路径。
备注:
举例来讲,如果您尝试将 c:mydir 移到 c:public,并且 c:public 已存在,则此方法引发 IOException。您必须将“c:\public\mydir”指定为 destDirName 参数(假设“c:\public”下不存在“mydir”),或者指定一个新的目录名,例如“c:\newdir”。
(sourceDirName 指目标文件的全路径。destDirName不仅仅只是新位置的路径,应是剪切文件后包含文件名的全路径地址)