重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
先杀进程再删除文件
创新互联公司是专业的兰西网站建设公司,兰西接单;提供做网站、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行兰西网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
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
vb点虐 使用控件folderbrowserdialog1,在程序中:
'设置对话框中在树视图控件上显示的说明文本
me.folderbrowserdialog1.description
=
"请选择输出报表所在路径:"
'设置从其开始浏览的根文件夹
me.folderbrowserdialog1.selectedpath
=
"c:\"
if
me.folderbrowserdialog1.showdialog()
=
dialogresult.ok
then
'取得全路径(包含文件名)
reportpath1
=
system.io.path.getfullpath(me.folderbrowserdialog1.selectedpath)
'设定text显示文件名
txtreport1.text
=
reportpath1
setreportlist()
end
if
在setreportlist()中针对你所需要的文件进行操作等
这段代码的问题是:
首先for each循环在files里查找文件对象,但是f变量声明为string了,无法让它获取对象;
然后file.copy的变量file没有任何声明,也没有初始化赋值等;
最后,整个for each循环里查找集合files的文件,由于初始化的循环计数器仍然按照最初设定的文件数目向后递增(文件地址),但是实际文件删除一部分,后续的文件位置就不能跟循环计数指针匹配了,所以默认为查找不到文件,将会报错。一般的做法时把复制和删除分别放在2次循环里,第一次只复制文件,第二次才去删除。
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