You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.Net如何选择文件名而不打开文件(解决占用报错问题)

解决VB.Net中OpenFileDialog选择被占用文件报错的问题

OpenFileDialog默认会验证选中文件的有效性,包括尝试访问文件以确认其可打开性,对于像pagefile.sys这类被系统占用的文件,这个验证过程会触发错误。你只需要获取文件路径而非打开文件,可通过修改对话框属性来规避这个问题:

Imports System.IO

' ...

Using dialog As New OpenFileDialog
    dialog.Title = "Select a file to exclude from the backup"
    dialog.InitialDirectory = "C:\"
    dialog.ValidateNames = False ' 关闭文件名有效性验证,避免触发被占用文件的访问错误
    dialog.CheckFileExists = True ' 保留文件存在性检查(可选,不需要可设为False)
    
    If dialog.ShowDialog <> DialogResult.OK Then Return
    
    ' 可选:自行验证文件是否存在
    If File.Exists(dialog.FileName) Then
        MsgBox(dialog.FileName)
    Else
        MsgBox("Selected file does not exist.")
    End If
End Using

关键设置说明

  • ValidateNames = False:禁用对话框对文件名的有效性验证,包括跳过尝试打开文件的检查逻辑,这样就能顺利获取被占用文件的路径。
  • CheckFileExists = True(可选):如果需要确保用户选择的是真实存在的文件,可保留该设置,对话框会检查文件是否存在,但不会尝试访问它。
  • 额外的File.Exists检查:作为双重验证,避免用户输入无效路径。

内容的提问来源于stack exchange,提问作者rerat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:27:39