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 '关闭文件
总结一下,防止文件被改写,最直接有效的方式就是在程序启动时先打开文件,保持占用状态。这招简单、粗暴,而且够用。
火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。
















