【问题标题】:VB.Net: Read list of files from a text file and check if file existsVB.Net:从文本文件中读取文件列表并检查文件是否存在
【发布时间】:2015-04-19 17:59:20
【问题描述】:

我想在 VB.Net 中创建一个实用程序,它有一个基本的 GUI 表单,允许用户检查一系列文件是否存在。

图形用户界面很好,我没有任何问题,但我需要帮助获取实用程序来读取文本文件(没有固定位置,就在运行 exe 的位置旁边),然后为每个行检查文件是否存在于预定路径中。

Dim path, file, nextLine  as String
path = "C:\ProgramName\Folder\
file = path & 'nextLine of text file

文本文件会很简单,如下所示。

setup.exe
file.ext
file2.ext
etc...

我可以让它检查文件是否存在,一旦文件在变量中,但我不知道如何让它通过每一个检查它是否存在。我认为是 FOR EACH 或 LOOP 但不确定,文本文件的位置是否相同(理想情况下,我希望它位于 exe 旁边,但 exe 没有固定路径,可以根据位置移动。是任何人都可以提供帮助。

编辑 txt 文件看起来像...

filename1.ext
filename2.ext
filename3.ext

所以我会使用文件夹浏览器在文本框中手动设置它正在寻找的路径,例如“C:\Temp\filelist.txt”然后在另一个目录中手动设置要搜索的目录以查看它是否存在,例如C:\Temp\Files\ 并将它们存储在变量中,然后为文本文件中的每一行查看它是否存在于路径中。

【问题讨论】:

    标签: vb.net for-loop text foreach


    【解决方案1】:

    如果您要查找的文件位于同一路径中,这应该可以工作;

        Dim fileList As String
        Dim fileName As String
        fileList = My.Computer.FileSystem.ReadAllText("c:\temp\fileList.txt")
        For X = 0 To fileList.Split(vbCrLf).Count - 1
            fileName = fileList.Split(vbCrLf).ElementAt(X).ToString.Replace(vbCr, "").Replace(vbLf, "")
            If My.Computer.FileSystem.FileExists("c:\temp\" & fileName) Then
                ListBox1.Items.Add(fileName) 'add items to this list if they exist
            Else
                ListBox2.Items.Add(fileName) 'add items to this list if they do not exist
            End If
    
        Next
    

    【讨论】:

    • 这不起作用,它说 count 和 elementAt 不是 System.Array 的一部分?
    • 这行得通,我在发布之前编写并测试了它。但我制作了自己的 txt 文件,TXT 文件在每一行都包含文件名和 CRLF。因此,为了进一步帮助您,我需要您提供更多信息。
    • 您好,谢谢,好的,我正在使用 Visual Studio 2012,其余详细信息已编辑到主帖中 - 谢谢,
    【解决方案2】:

    您可以使用以下单行检查文件是否存在。

    My.Computer.FileSystem.FileExists(file_path_to_check)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2023-03-05
      • 2020-01-01
      • 1970-01-01
      相关资源
      最近更新 更多