【问题标题】:Toggle Renaming a File without checking if it exists in VB.NetToggle 重命名文件而不检查它是否存在于 VB.Net 中
【发布时间】: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


【解决方案1】:

找不到与批处理文件示例匹配的解决方案,因此将测试文件是否存在。顺便说一下,这不是一个企业解决方案——文件被另一个进程锁定的可能性恰好为零。此外,文件存在于两种名称状态之一的可能性为 100%。然而,我理解并欣赏 cmets 的稳健性并接受它们。谢谢。

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 2013-08-08
    • 1970-01-01
    • 2017-05-23
    • 2013-08-14
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多