2013-09-24 28 views
0

的OnCreated事件我實現了FileSystemWatcher本次活動:交給FileSystemWatcher的

Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs) 
    If e.Name.ToUpper() == "MYTEXTFILE.TXT" then 
     ' code ' 
    End If 
End Sub 

有沒有辦法來監控,如果創建的文件是一個文本框與此類似?

Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs) 
    If e.Name.ToUpper.contains(textbox1.text) then 
      ' code ' 
End Sub 
+0

該文本框只包含一個文件或多個?如果你有多個文件,它們是如何相互分離的? – Steve

+0

還有更多的文件,每個文件都在下一行。 – Jedi

回答

1

在多行文本框中有多個文件,並且每個文件名都位於單獨的行中,因此需要分別分割文件名,然後使用剛創建的文件檢查每個文件名。

Private Shared Sub OnCreated(source As Object, e As FileSystemEventArgs) 

    ' Get an array of the files at each line and remove eventually spurious empty lines 
    Dim files() = textbox1.Text.Split(New String() {Environment.NewLine}, _ 
             StringSplitOptions.RemoveEmptyEntries) 
    Dim newFile = e.Name.ToUpper() 
    for each file in files 
     if file.ToUpper() = newFile Then 
      ' code ' 
      Exit For 
     End If 
    Next 
End Sub 
+0

謝謝,我用'dim newfile替換'string newfile = e.name.toupper()'作爲string = e.name.touppper()',它就像一個魅力一樣。 – Jedi

+0

是的,對不起,我在這個時候記住了C#(順便說一下,編寫Dim newfile = e.Name.ToUpper()'就足夠了,編譯器足夠聰明地推斷出你正在使用一個字符串) – Steve

0

我不是100%清楚,我明白你的問題,但我假設你要比較剛在一個文本文件的名稱創建的文件的名稱。

1)文本框中的文本是否也是大寫?在比較之前,我看到了大寫的文件名。

2)文本框中的文本「包含」在文件的名稱中,也許是相反的方式?

3)條件應該是.Equal而不是.Contains?

+0

我用等於,它不工作。文本框中的文本是小寫的,線程上的僅僅是例子。 – Jedi

+0

此外,我不能使用平等,因爲它會比較整個文本框文本,包含是要走的路。 – Jedi

+0

我看到你的代碼是在VB中,但在C#中它不會編譯,因爲方法「.contains」應該已被大寫。這可能是你的問題嗎? – Ivan