VB.NET版 ImportsSystem.IO ImportsSystem.IO.Directory '====================================================== '实现一个静态方法将指定文件夹下面的所有内容copy到目标文件夹下面 '如果目标文件夹为只读属性就会报错。 '====================================================== PublicSharedSubCopyDir(ByValsrcPathAsString,ByValaimPathAsString) Try '检查目标目录是否以目录分割字符结束,如果不是则添加之 IfaimPath(aimPath.Length-1)<>Path.DirectorySeparatorCharThen aimPath+=Path.DirectorySeparatorChar EndIf '判断源目录是否存在,不存在则退出. If(NotDirectory.Exists(srcPath))ThenExitSub '判断目标目录是否存在如果不存在则新建之 If(NotDirectory.Exists(aimPath))ThenDirectory.CreateDirectory(aimPath) '得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 '如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法 'string[]fileList=Directory.GetFiles(srcPath); DimfileList()AsString=Directory.GetFileSystemEntries(srcPath) '遍历所有的文件和目录 ForEachFileNameAsStringInfileList '先当作目录处理如果存在这个目录就递归Copy该目录下面的文件 IfDirectory.Exists(FileName)Then CopyDir(FileName,aimPath+Path.GetFileName(FileName)) '否则直接Copy文件 Else File.Copy(FileName,aimPath+Path.GetFileName(FileName),True) EndIf Next CatchexAsException MessageBox.Show(ex.ToString()) EndTry EndSub '====================================================== '实现一个静态方法将指定文件夹下面的所有内容Detele '测试的时候要小心*作,删除之后无法恢复。 '====================================================== PublicSharedSubDeleteDir(ByValaimPathAsString) Try '检查目标目录是否以目录分割字符结束如果不是则添加之 If(aimPath(aimPath.Length-1)<>Path.DirectorySeparatorChar)Then aimPath+=Path.DirectorySeparatorChar EndIf '判断待删除的目录是否存在,不存在则退出. If(NotDirectory.Exists(aimPath))ThenExitSub '得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 '如果你指向Delete目标文件下面的文件而不包含目录请使用下面的方法 'string[]fileList=Directory.GetFiles(aimPath); DimfileList()AsString=Directory.GetFileSystemEntries(aimPath) '遍历所有的文件和目录 ForEachFileNameAsStringInfileList If(Directory.Exists(FileName))Then '先当作目录处理如果存在这个目录就递归Delete该目录下面的文件 DeleteDir(aimPath+Path.GetFileName(FileName)) Else '否则直接Delete文件 File.Delete(aimPath+Path.GetFileName(FileName)) EndIf Next '删除文件夹 System.IO.Directory.Delete(aimPath,True) CatchexAsException MessageBox.Show(ex.ToString()) EndTry EndSub |