重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
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次循環里,第一次只復制文件,第二次才去刪除。