Ich schreibe ein Programm für einen Radiosender, der eine XML-Datei scannt, auf der der gerade spielende Song aktualisiert wird, ich brauche dann das Programm, um den gezogenen Künstlernamen und Songnamen aus dem XML zu senden eine URL, damit ich die Daten im Web anzeigen kann. HierFileSystemWatcher XML VB.Net
ist der Code, den ich geschrieben habe, zu scannen und die Daten anzuzeigen, die ich aus der XML benötigen:
Imports System.IO
Imports System.Xml
Public Class Form1
Private Sub BrowseButton_Click(sender As Object, e As EventArgs) Handles BrowseButton.Click
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
XMLFileDirectoryTextBox.Text = OpenFileDialog1.FileName
End If
End Sub
Private Sub StartButton_Click(sender As Object, e As EventArgs) Handles StartButton.Click
If (XMLFileDirectoryTextBox.Text = "") Then
MessageBox.Show("XML file not found. Please select your XML file and try again.")
Else
If (System.IO.File.Exists(XMLFileDirectoryTextBox.Text.ToString())) Then
Dim document As XmlReader = New XmlTextReader(XMLFileDirectoryTextBox.Text.ToString())
While (document.Read())
Dim type = document.NodeType
If (type = XmlNodeType.Element) Then
If (document.Name = "ARTIST") Then
ArtistNameTextBox.Visible = True
ArtistNameTextBox.Text = document.ReadInnerXml.ToString()
End If
If (document.Name = "TITLE") Then
SongTitleTextBox.Visible = True
SongTitleTextBox.Text = document.ReadInnerXml.ToString()
End If
End If
End While
End If
End If
End Sub
Da die XML ständig ändert ich die Datei müssen ständig auf Veränderungen beobachtet werden Aus diesem Grund habe ich beschlossen, die SystemFileWatcher-Klasse in VB zu verwenden. Ich habe versucht, es auszuprobieren, aber von was ich sehen kann SystemFileWatcher funktioniert nur mit einem Ordner für Änderungen und nicht eine bestimmte Datei.
Ich bin ziemlich neu in der Codierung so tut mir leid, wenn ihre schlechten Techniken innerhalb der Code oben (ich lerne immer noch), wenn jemand würde mir freundlicherweise helfen, es würde sehr geschätzt werden.
Danke.
Das C# Antwort ist nur eine Paste aus [FileSystemWatcher.NotifyFilter Property] (https://msdn.microsoft.com/en-us/library/ system.io.filesystemwatcher.notifyfilter (v = vs.85) .aspx/html? cs-save-lang = 1 und cs-lang = csharp # code-snippet-5) Es verweist darauf, aber es ist eine Paste – Plutonix
@Matt Wilko Ich habe das gesehen, aber mein Problem ist, dass ich einen OpenFiledialog habe, der es mir erlaubt, genau die XML zu definieren, die das Programm verwenden soll. Der obige Code wählt einen Ordner und prüft dann auf Änderungen in (* .txt) Dateien, aber in meinem Fall der Ordner, der die XML hat ich brauche nicht die einzige XML in ihrer. –
Ändern Sie einfach den 'watcher.Filter =" MyExactFilename.xml "', der nur eine einzelne Datei ansehen soll –