先殺進(jìn)程再刪除文件
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)象山,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
Visual Basic code
//殺進(jìn)程代碼
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
這段代碼的問(wèn)題是:
首先f(wàn)or each循環(huán)在files里查找文件對(duì)象,但是f變量聲明為string了,無(wú)法讓它獲取對(duì)象;
然后file.copy的變量file沒(méi)有任何聲明,也沒(méi)有初始化賦值等;
最后,整個(gè)for each循環(huán)里查找集合files的文件,由于初始化的循環(huán)計(jì)數(shù)器仍然按照最初設(shè)定的文件數(shù)目向后遞增(文件地址),但是實(shí)際文件刪除一部分,后續(xù)的文件位置就不能跟循環(huán)計(jì)數(shù)指針匹配了,所以默認(rèn)為查找不到文件,將會(huì)報(bào)錯(cuò)。一般的做法時(shí)把復(fù)制和刪除分別放在2次循環(huán)里,第一次只復(fù)制文件,第二次才去刪除。
Private?Sub?btnRemovePath_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?btnRemovePath.Click
Try
'?先建立目錄以便用于后續(xù)的刪除示范。
If?Not?Directory.Exists("D:\網(wǎng)易")?Then
Directory.CreateDirectory("?D:\網(wǎng)易?\Test1")
Directory.CreateDirectory("?D:\網(wǎng)易?\Test2")
Directory.CreateDirectory("?D:\網(wǎng)易?\Test3")
End?If
'?刪除子目錄?Test1。
Directory.Delete("?D:\網(wǎng)易?\Test1",?True)
'?刪除子目錄?Test2。
Dim?myDirectoryInfo?As?New?DirectoryInfo("?D:\網(wǎng)易?\Test2")
myDirectoryInfo.Delete(True)
'?將目錄?C:\AlexDirDemo?及其以下的文件和子目錄全數(shù)刪除。
Directory.Delete("?D:\網(wǎng)易?",?True)
Catch?ex?As?Exception
MessageBox.Show(ex.Message)
Exit?Sub
End?Try
'?啟動(dòng)?Windows?資源管理器。
Process.Start("explorer.exe",?"D:\")
End?Sub