xml - VB.net 检查某个文件夹中是否有 .xml 文件(循环中)并单独处理它们
问题描述
我有一个文件夹,软件在其中生成随机 XML 数据文件和几张扫描图像(链接在 .xml 中)。我需要根据 .xml 中的数据对这些图像进行排序。唯一的问题是 .xml 文件具有随机名称。我只是想不出一种方法来检查该特定文件夹中是否有没有文件名的 xml 文件。而且我需要一个循环运行的代码,直到我按下停止按钮。
我试图制作一个开始按钮“ Button3
”,点击它会触发检查机制,但这需要用户在每个周期后输入。所以我想要一个循环循环并执行此操作,直到我按下结束按钮“ Button4
”。File.Exists()
函数似乎不适用于通配符 (*.xml) 名称。
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
If (TextBox1.Text = "") Then
MsgBox("Please select xml folder")
ElseIf (TextBox2.Text = "") Then
MsgBox("Please select target folder")
Else
RichTextBox1.Text = "Process started..."
Dim SourcePath = TextBox1.Text
If System.IO.File.Exists(SourcePath+"/*.xml") Then
RichTextBox1.AppendText(Environment.NewLine + "Found one xml data, processing it now.. ")
RichTextBox1.ScrollToCaret()
RichTextBox1.ReadOnly = True
Else
RichTextBox1.AppendText(Environment.NewLine + "No xml data found, looping ... ")
RichTextBox1.ScrollToCaret()
RichTextBox1.ReadOnly = True
End If
End If
End Sub
虽然当我将 *.xml 替换为 test.xml 并通过按开始按钮触发检查时代码有效,但我无法使用 goto 运行稳定的循环,并且由于文件名不是恒定的,因此无论如何都不可行。
PS:TextBox1
&TextBox2
是具有每个源和目标文件夹名称的 OpenFileDialogs。RichTextBox1
是嵌入式日志。
解决方案
使用DirectoryInfo获取文件
var di = new DirectoryInfo("C:\\temp"); //use your path
foreach(var file in di.GetFiles("*.xml"))
{
//do your work.
}
使用FileSystemWatcher监视文件并在更改时触发事件
推荐阅读
- r - dplyr:如何根据其他列中的值计算组内的折叠变化
- python - 如何找到 xor ==n 的数字对
- python - 在执行透视变形时,如何避免部分图像被剪切?
- php - 在 __clone() 中获取原始/源实例
- java - 在 Spring Data 中,我是否应该对处理所有可能的异常感到偏执?
- azure - 带有 MLOps 的 AutoML 导致我出现错误 - 消息:找不到提供的模型路径
- c# - IsCancellationRequested 始终为 false
- azure-eventhub - EventHubProducerClient 是否可以跨多个请求重用
- c# - 桌面程序的 C# 证书
- c - 将终端参数传递给另一个函数