【问题标题】:vb.net file watch returns an incorrect filenamevb.net 文件监视返回不正确的文件名
【发布时间】:2010-02-03 02:35:27
【问题描述】:

我正在尝试使用 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 几乎没有帮助。有人遇到过这个问题或知道我在哪里可以找到更多信息吗?

【问题讨论】:

  • 看起来 Excel 是先保存一个临时文件?
  • 听起来像是excel正在写的临时文件

标签: .net vb.net filesystemwatcher


【解决方案1】:

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

总结:

当 Excel 保存文件时,Excel 会跟随 这些步骤:

  1. Excel 创建一个随机命名的临时文件(例如,Cedd4100 没有文件扩展名)在 您指定的目标文件夹 在“另存为”对话框中。 工作簿被写入临时 文件。
  2. 如果将更改保存到现有文件,Excel 会删除 原始文件。
  3. Excel 重命名临时文件。 Excel 给出临时文件 您指定的文件名(例如 作为 Book1.xls)在“另存为”对话框中 盒子。

【讨论】:

  • 谢谢,就是这样。看来我要自己写了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 2011-05-25
  • 2013-02-05
  • 1970-01-01
相关资源
最近更新 更多