2013-09-24 24 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