VB简单实现防止文件被改写
在VB程序中,防止配置文件被改写的有效方法是在程序运行期间先打开文件并保持占用状态,使系统提示文件被占用而无法手动修改。同时,程序启动时检查文件是否存在,若不存在则自动创建并写入默认值。
最近在写一个小程序,遇到一个挺实际的问题:程序里有个配置文件,对整个程序来说至关重要。一旦被删除或者被人手欠改写了,程序要么直接跑不起来,要么跑起来关不掉。所以我就琢磨,怎么才能让手工没法改写这个文件呢?

先说“删除”这件事,其实挺好解决的。程序启动时检查一下配置文件的路径,如果文件不存在,就自动创建并给一套默认值。VB 里实现起来很直接:
FileName = App.Path + "CONFIG"
'如果文件不存在,则创建文件
If Dir(FileName) = "" Then
Open FileName For Output As #1 '打开顺序文件,我们可以使用Open语句
a = Encode("123") + vbCrLf + "10" + vbCrLf 'vbCrLf为回车
Print #1, a '写数据
Close #1 '关闭文件
End If
但“手工改写”这个问题,一开始确实没找到太好的办法。试过把文件隐藏掉,用 SetAttr FileName, vbSystem Or vbHidden 把文件属性设为系统+隐藏。不过说到底,这只是治标不治本——只要用户知道文件路径,照样能改。
后来又想到一个思路:修改配置文件的后缀名,让普通用户没法直接双击打开。但总归还是有办法打开的,比如用记事本、用命令行,拦不住。
最后绕了一圈,反而发现了一个最简单的办法:在程序运行期间,先把这个配置文件打开,保持占用状态。这样一来,手动操作的时候系统会提示“文件正在被使用”,自然就改不了了。VB 里只需一行代码:
Open FileName For Binary As #99
当然,有个小细节需要注意:程序需要在改配置文件的时候,先把打开的文件关闭掉,否则改写操作会失败。关闭也很简单:
Close #99 '关闭文件
总结一下,防止文件被改写,最直接有效的方式就是在程序启动时先打开文件,保持占用状态。这招简单、粗暴,而且够用。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















