我正在尝试使用VB.Net FileSystemWatcher类来查看用于创建Excel文件的文件夹。我在文件夹中创建.xls文件时得到响应,但是我遇到了以下代码的问题:
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 :(得分:1)
http://support.microsoft.com/kb/814068
总结:
当Excel保存文件时,Excel会关注 这些步骤:
- Excel会创建一个随机命名的临时文件(例如,Cedd4100 在没有文件扩展名的情况下 您指定的目标文件夹 在“另存为”对话框中。整体 工作簿写入临时 文件。
- 如果要将更改保存到现有文件,Excel将删除 原始文件。
- Excel重命名临时文件。 Excel提供临时文件 您指定的文件名(例如 在“另存为”对话框中显示为Book1.xls) 框。
醇>