2010-02-03 99 views
1

我正在嘗試使用VB.Net FileSystemWatcher類來觀察創建Excel文件的文件夾。我得到當文件夾中創建一個.xls文件的響應,但我有與下面的代碼有問題:vb.net文件手錶返回不正確的文件名

Private Sub AddWatch() 

Dim watch As New FileSystemWatcher 

     AddHandler watch.Changed, AddressOf FileChange 
     watch.Filter = "*.*" 
     watch.NotifyFilter = NotifyFilters.LastWrite 
     watch.Path = "C:\Documents and Settings\my.user\Desktop\testing" 
     watch.EnableRaisingEvents = True 
End Sub 

    Private Sub FileChange(ByVal obj As Object, ByVal e As System.IO.FileSystemEventArgs) 

     Debug.Print("changetype is: " & e.ChangeType.ToString & ", path is: " & e.FullPath.ToString) 
    End Sub 

當我這個文件夾中創建一個文本文件,我找回了正確的文件名( 「C:\ Documents and Settings \ my.user \ Desktop \ testing \ foo.txt」)。但是,當我將Excel文件保存到文件夾中時,路徑仍然正確,但文件名是垃圾文件(即使使用相同的文件名,每次都不相同,總是8個字符,如「C:\ Documents and Settings \ my.user \ Desktop \ testing \ DE0B5800「。)在這個搜索谷歌或這裏找不到東西,和往常一樣,MSDN幫助不大。任何人都可以在此之前運行,或知道我可以在哪裏找到更多信息

+0

看起來像Excel是第一次保存臨時文件? –

+0

聽起來像是excel寫入的臨時文件 – pm100

回答

1

http://support.microsoft.com/kb/814068

總結:

當Excel保存文件,Excel會按照 下列步驟操作:

  1. Excel中創建一個隨機命名的臨時文件(例如,Cedd4100 沒有文件擴展名)在您指定的 目標文件夾中另存爲「對話框中的」3210「。將整個 工作簿寫入臨時文件 。
  2. 如果正在將更改保存到現有文件,Excel將刪除 原始文件。
  3. Excel重命名臨時文件。 Excel在「另存爲」對話框 框中給出臨時文件 指定的文件名(例如 爲Book1.xls)。
+0

謝謝,就是這樣。看起來我會寫我自己的。 –

相關問題