Private Sub btnRemovePath_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemovePath.Click
创新互联建站网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了网站设计、网站制作,成都网站设计,广告投放平台,成都做网站选创新互联建站,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
Try
' 先建立目录以便用于后续的删除示范。
If Not Directory.Exists("D:\网易") Then
Directory.CreateDirectory(" D:\网易 \Test1")
Directory.CreateDirectory(" D:\网易 \Test2")
Directory.CreateDirectory(" D:\网易 \Test3")
End If
' 删除子目录 Test1。
Directory.Delete(" D:\网易 \Test1", True)
' 删除子目录 Test2。
Dim myDirectoryInfo As New DirectoryInfo(" D:\网易 \Test2")
myDirectoryInfo.Delete(True)
' 将目录 C:\AlexDirDemo 及其以下的文件和子目录全数删除。
Directory.Delete(" D:\网易 ", True)
Catch ex As Exception
MessageBox.Show(ex.Message)
Exit Sub
End Try
' 启动 Windows 资源管理器。
Process.Start("explorer.exe", "D:\")
End Sub
Imports System.IO
Imports System.IO.Directory
' ======================================================
' 实现一个静态方法将指定文件夹下面的所有内容del
' 如果目标文件夹为只读属性就会报错。
' ======================================================
Public Shared Sub DelDir(ByVal srcPath As String, ByVal aimPath As String)
Try
' 检查目标目录是否以目录分割字符\结束,如果不是则添加之
If aimPath(aimPath.Length - 1) Path.DirectorySeparatorChar Then
aimPath += Path.DirectorySeparatorChar
End If
'判断源目录是否存在,不存在则退出.
If (Not Directory.Exists(srcPath)) Then Exit Sub
' 判断目标目录是否存在如果不存在则新建之
If (Not Directory.Exists(aimPath)) Then Directory.CreateDirectory(aimPath)
' 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
Dim fileList() As String = Directory.GetFileSystemEntries(srcPath)
' 遍历所有的文件和目录
For Each FileName As String In fileList
' 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
If Directory.Exists(FileName) Then
' 直接Delete文件
File.Delete(aimPath + Path.GetFileName(FileName))
end if
Next
Catch ex As Exception
MessageBox.Show(ex.ToString())
End Try
End Sub
然后你定义一个timer设定循环时间,时间到则调用这个即可
先杀进程再删除文件
Visual Basic code
//杀进程代码
Private Sub KillProcess(ByVal processName As String)
Dim myproc As System.Diagnostics.Process = New System.Diagnostics.Process
Try
For Each thisproc As Process In Process.GetProcessesByName(processName)
If (Not thisproc.CloseMainWindow()) Then
thisproc.Kill()
End If
Next
Catch
End Try
End Sub
这段代码的问题是:
首先for each循环在files里查找文件对象,但是f变量声明为string了,无法让它获取对象;
然后file.copy的变量file没有任何声明,也没有初始化赋值等;
最后,整个for each循环里查找集合files的文件,由于初始化的循环计数器仍然按照最初设定的文件数目向后递增(文件地址),但是实际文件删除一部分,后续的文件位置就不能跟循环计数指针匹配了,所以默认为查找不到文件,将会报错。一般的做法时把复制和删除分别放在2次循环里,第一次只复制文件,第二次才去删除。