十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
先杀进程再删除文件
成都创新互联公司专注于凤城企业网站建设,响应式网站,成都商城网站开发。凤城网站建设公司,为凤城等地区提供建站服务。全流程定制设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
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
Dim newfile As New List(Of String)
For Each line As String In System.IO.File.ReadAllLines("TextFile1.txt")
If Not line.StartsWith("3") Then newfile.Add(line)
Next
System.IO.File.WriteAllLines("TextFile1.txt", newfile)
建个集合,用System.IO.File的ReadAllLines读出所有内容,逐个判断,如果是需要的加入集合,如果是要删除的什么都不做,最后用WriteAllLines写入即可。
这里说明一下,上面那个代码是用来删除所有以3开头的文本行。
这段代码的问题是:
首先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
vb.net使用控件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()中针对你所需要的文件进行操作等
1,对于INI文件,可以当做像TXT文件一样来进行读取和写入。
2,先把整个文件度出来,然后找到相应行删除(抛弃)以后,再重新写入文件。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyStr As String = ""
Dim AllStr As String = ""
'获取一个可用的文件号
Dim MyFileNum As Integer = FreeFile()
'打开指定的文件,进行读取操作
FileOpen(MyFileNum, "C:\My.ini", OpenMode.Input)
Do While Not EOF(MyFileNum)
'读取一行
MyStr = LineInput(MyFileNum)
If MyStr "b=2" Then
If AllStr = "" Then
AllStr = AllStr MyStr
Else
AllStr = AllStr vbCrLf MyStr
End If
End If
Loop
FileClose(MyFileNum) '关闭文件
'写文件
Dim MyStream As New System.IO.FileStream("C:\My.ini", IO.FileMode.Create)
Dim MyWriter As New System.IO.StreamWriter(MyStream, System.Text.Encoding.UTF8)
MyWriter.WriteLine(AllStr)
MyWriter.Flush()
MyWriter.Close()
MyStream.Close()
End Sub
End Class