【发布时间】:2023-01-20 03:47:59
【问题描述】:
非程序员尝试切换从 vb.net 表单重命名文件而不检查它是否存在。使用简单的批处理文件完成了此操作。想知道在 vb.net 中是否可以不需要检查文件是否存在。也不想使用切换控件,想使用按钮控件作为 UI 首选项。 批处理文件中使用的代码:
set ADDON_PATH="P:\MyPath\MySubFolder\"
set ADDON_NAME="myfile.dll"
set DISABLE_NAME="myfile.bak"
cd /d %ADDON_PATH%
Ren %ADDON_NAME% %DISABLE_NAME% 2> nul || ren %DISABLE_NAME% %ADDON_NAME% 2> nul
使用按钮的 vb.net 的部分代码,不切换按钮
Private Sub PlayVanilla(sender As Object, e As EventArgs) Handles Button11.Click
If Button11.Text = "Vanilla Mode" Then
Button11.Text = "Modded Game"
Button11.ForeColor = Color.Green
My.Computer.FileSystem.RenameFile("P:\MyPath\MySubFolder\myfile.dll", "myfile.bak")
Else
Button11.Text = "Vanilla Mode"
Button11.ForeColor = Color.Red
My.Computer.FileSystem.RenameFile("P:\MyPath\MySubFolder\myfile.bak", "myfile.dll")
End If
End Sub
我没有尝试上面的代码,因为显然文件可能处于任一状态,myfile.bak 或 myfile.dll。所以问题是,我是否需要检查文件是否存在,或者我是否可以像在批处理文件中那样使用构造。最后一点,这个文件总是存在的,我是唯一的用户,所以它不存在的风险为 0%。批处理文件简单而完美地工作,但我不想从 VB 表单运行批处理文件,寻找 VB 解决方案。谢谢你。
【问题讨论】:
-
应该可以先检查文件是否存在。有什么理由不这样做?
-
没有理由不这样做。只是好奇。因为我是 VB.net 的新手而且绝对不是程序员,所以考虑到批处理文件方法的简单性和优雅性,这是否可行。如果没有,肯定会检查文件是否存在。
-
只是有一个想法。也许与 iif 功能。会考。
-
坦率地说,我没试过上面的代码,那你为什么要在这里问?尝试一下,看看会发生什么。有很多尝试重命名文件的策略,但真正最好的想法是让您的系统尽可能健壮,并尽可能避免出现问题,因此 100% 建议检查文件是否存在且可用(因为没有被另一个进程锁定等)在尝试任何类型的文件处理之前。
-
文件就存在了。
标签: vb.net toggle file-rename