i有一个文件夹(" edi"([editions],带有.txt文件(01,02,03,04(我有此功能代码:
ListBox2.Items.AddRange(File.ReadAllLines(Application.StartupPath & "CatEDI", "01.txt"))
ListBox2.Items.AddRange(File.ReadAllLines(Application.StartupPath & "CatEDI", "02.txt"))
ListBox2.Items.AddRange(File.ReadAllLines(Application.StartupPath & "CatEDI", "03.txt"))
直到68。每个文件都包含列表歌曲。但是,如果我尝试减少在" for loop"上实现的代码,as
For i = 1 To 70
ListBox2.Items.AddRange(File.ReadAllLines(Application.StartupPath & "CatEDI", (i) & ".txt"))
Next
我在(i) & ".txt"
上遇到错误。说:"String cannot be converted in coding"
我该如何解决?文本文件的名称为01.txt,02.TXT,其中有2个数字,也将" for-loop"自动更改为1
或更高...如何在文件夹上加载所有存在的文本文件的所有文本行?
我已经有文件列表(如果需要(,我使用此代码将所有TXT文件名称为另一个列表框:
Dim newroot As String
newroot = (Application.StartupPath & "CatEDI")
listbox1.items.AddRange(IO.Directory.GetFiles(newroot, "*.txt").
Select(Function(f) IO.Path.GetFileNameWithoutExtension(f)))
以下使用字符串前$表示的插值字符串。这将在{}
中的整数上为您致电.tostringPrivate Sub FileNamesInLoop()
For i As Integer = 1 To 9
ListBox1.Items.Add($"0{i}.txt")
Next
For i2 As Integer = 10 To 68
ListBox1.Items.Add($"{i2}.txt")
Next
End Sub
您可以使用 Integer.ToString(format)
Overload 并指定数字格式00
。这样做总是为数字&lt添加领先的零;10,即:
-
5.ToString("00")
变为05
-
9.ToString("00")
变为09
-
23.ToString("00")
变为23
这是您要做的:
For i = 1 To 68
ListBox2.Items.AddRange(File.ReadAllLines(Application.StartupPath & "CatEDI", i.ToString("00") & ".txt"))
Next
尽管我强烈建议您切换到 Path.Combine()
而不是自己加入路径,因为它将确保一切都正确完成:
For i = 1 To 68
ListBox2.Items.AddRange(File.ReadAllLines(Path.Combine(Application.StartupPath, "Cat", "EDI", i.ToString("00") & ".txt")))
Next