VB.NET检测文件是否已经打开或被其他进程占用

本文探讨了在VB.NET中如何检测文件是否已被打开或占用,以避免保存时出错。主要内容包括两种解决方案:一是通过检查进程来判断文件状态,二是尝试以独占模式打开文件。这两种方法都有其局限性,文中也提到了可能的误判情况和解决思路。
摘要由CSDN通过智能技术生成

检测文件是否已经打开或被其他进程占用

在VB.NET保存文件时,不禁产生这样一个疑问,如果想保存的这个文件覆盖先前已经存在的文件,但这个文件已经被打开,程序运行会出错,如何检测保存的这个文件已经已经打开或者被其他进程占用并且提示这个错误?

一、本文主要解决问题

1、检测当前路径下保存的文件是否已经打开或被占用
2、不同文件下,文件名相同的两个文件出现误判的情况

二、解决方法

经过初步的学习,目前两个可以探索或者可以实现的方法

1、检测计算机进程中是否存在这个事件
2、以独占的方法打开文件

方法一

既然要检测已知文件是否已经打开,可以直接利用计算机进程来解答,检测当前任务管理器中是否存在该事件,如果存在,可以判定文件已经打开或者被占用。

部分代码:

SaveFileDialog1.Filter = "所有文件|*.text"
SaveFileDialog1.FilterIndex = 1
SaveFileDialog1.ShowDialog()
TextBox2.Text = SaveFileDialog1.FileName
Dim filename As String = TextBox3.Text
Dim pp() As Process = Process.GetProcesses '获取进程
Dim p As Process
For i = 0 To pp.Length - 1
       p = pp(i)
        If p.MainWindowTitle.Contains(filename) Then
        MsgBox("文件打开或被
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值