【问题标题】:VB6 File IO questions (FreeFile, File Number, and Dir command)VB6 文件 IO 问题(FreeFile、File Number 和 Dir 命令)
【发布时间】:2014-01-02 23:08:29
【问题描述】:

我正在转换一个已经运行多年的旧 VB6 应用程序,但其中有一个硬编码的服务器名称。我们想将其转换为 C# 应用程序,并且我可以阅读大部分 VB6 代码,但我不能 100% 确定在一些基本的文件 IO 操作方面我正在阅读代码。

几行代码调用 FreeFile 函数。我看到 VB.NET 有这个功能,我有 read the documentation 但它对我来说仍然没有意义。

备注

使用 FreeFile 提供尚未使用的文件编号。

问题 1:我的所有搜索都没有告诉我“文件编号”是什么或它的用途。这是引用文件的某种方式,而不是文件名吗?

问题 2:我也不确定 Dir 函数。对我来说,它看起来相当于 System.IO.File.Exists(),对吗?

示例代码:

If Not Dir(My.Application.Info.DirectoryPath & "\path.txt") = "path.txt" Then
   End
Else
   iFile = FreeFile
   FileOpen(iFile, My.Application.Info.DirectoryPath & "\path.txt", OpenMode.Input)
   Input(iFile, lsDataIn)
   FileClose()
End If

【问题讨论】:

    标签: file-io vb6


    【解决方案1】:

    FreeFile 在 C# 中不需要,因为它已被完全抽象掉。只需使用标准文件 I/O 在 C# 中打开文件。

    Dir 函数而言,它在VB6 中非常通用,并且做了很多事情。在这种情况下,是的,你是对的,可以换成File.Exists

    所以您的 C# 代码可能如下所示:

    if (System.IO.File.Exists("path.txt"))
        Application.Exit();
    else
        string txt = System.IO.File.ReadAllText("path.txt");
    

    【讨论】:

    • 谢谢您和 +1... 我知道我可以对文件使用常规 I/O 操作。我稍微修改了我的问题,以澄清我在问什么,你完美地回答了第二个问题。您能解释一下文件编号是什么以及它的用途吗?我对在 .NET 中处理文件非常满意,但假设我了解旧代码,我会更加紧张。很容易误读旧代码并在我的新代码中做一些完全不同的事情,以为我正在执行相同的任务。
    • 在(古代)BASIC 编程中,当你打开一个文件时,你提供了一个数字(1、2、3 等),这样你就可以同时打开多个文件并引用它们按编号。 FreeFile 为您提供了一个编号,您可以安全地使用它来打开下一个文件。
    • 我想我终于明白了——它看起来几乎就像变量名一样用来引用文件。 Mayby 不完全是,但在概念上,它看起来很相似。谢谢@Joel Spolsky 抽出宝贵时间!
    • 请记住,旧版本的 basic 并没有真正的变量——当然没有文件引用指针。它们可能有 A-Z(26 个数字变量)和 A$ 和 B$(两个字符串,每个字符串最多 16 个字符)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多