Foxtable(狐表)用户栏目专家坐堂 → 文件监视器不能返回excel跟word的文件名


  共有2310人关注过本帖树形打印复制链接

主题:文件监视器不能返回excel跟word的文件名

帅哥哟,离线,有人找我吗?
lxhmax
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:630 积分:5631 威望:0 精华:0 注册:2012/8/2 19:04:00
文件监视器不能返回excel跟word的文件名  发帖心情 Post By:2020/4/14 15:20:00 [只看该作者]

文件监视器不能返回excel跟word的文件名,这个是什么情况?
filechange的代码 MessageBox.Show(e.Name)
文件监视启动代码 
With FileWatcher
    .Path = ProjectPath & "Excel\报告管理"
    .Delay = 500
    .Enabled = True
End With

我实际想得到的是单纯的文件名,不要包含路径

这个是excel跟word文件修改的提示

图片点击可在新窗口打开查看此主题相关图片如下:图片2.png
图片点击可在新窗口打开查看


下面这个是txt文件的修改提示

图片点击可在新窗口打开查看此主题相关图片如下:图片1.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2020/4/14 15:22:48编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/14 17:01:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
lxhmax
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:630 积分:5631 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2020/4/15 2:06:00 [只看该作者]

一样的老师,txt文件能正常返回文件名,excel跟word文件就还是跟之前的截图一样


 回到顶部
帅哥哟,离线,有人找我吗?
lxhmax
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:630 积分:5631 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2020/4/15 2:17:00 [只看该作者]

http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=77316&page=0&move=next

跟这个情况是一样的

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/15 9:23:00 [只看该作者]

excel跟word文件如果是复制过去的不会有问题。excel跟word文件修改的时候会产生几个临时文件的。这种问题您得找微软。实际上excel跟word文件修改保存会多次触发监视器事件的,空文件、tmp文件、~开头的文件忽略即可


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
lxhmax
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:630 积分:5631 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2020/4/15 14:13:00 [只看该作者]

老师,请问下面这个怎么加上延迟执行的代码?


Public Sub OnCreated(ByVal source As Object, ByVal e As System.IO.FileSystemEventArgs)

'msgbox("OnChanged" & e.FullPath & "e.ChangeType:" & e.ChangeType.ToString())
End Sub

 

调用和启用:

Dim watcher As new System.IO.FileSystemWatcher()
watcher.Path = "D:\文件监视器"
watcher.Filter = "*.*"
watcher.IncludeSubdirectories = True
addhandler watcher.Created, addressof OnCreated
watcher.EnableRaisingEvents = True


 回到顶部
帅哥哟,离线,有人找我吗?
lxhmax
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:630 积分:5631 威望:0 精华:0 注册:2012/8/2 19:04:00
  发帖心情 Post By:2020/4/15 14:19:00 [只看该作者]

老师,还有下面这个问题
这个全局代码有什么问题吗?经常会导致整个程序闪退的

Public Sub OnRenamed(ByVal source As Object, ByVal e As System.IO.RenamedEventArgs)
Dim wj As String = FileSys.GetName(e.FullPath)
Dim lj,mb As String
If wj.Contains(".xlsx") Then
    Dim dr As DataRow = DataTables("bgffjl").SQLFind("[文件名] = '" & wj & "'")
    If wj.Contains("测试报告") Then
        mb = "测试报告"
    Else
        mb = "检测报告"
    End If
    lj = ProjectPath & "Excel\报告管理\" & mb & "\" & dr("wtdh") & "\" & wj
    If dr IsNot Nothing Then
        If CRCCheckFile(lj) <> dr("本地校验码") Then
            If MessageBox.Show("【" & wj & "】报告已修改!是否同步至服务器?" & vbcrlf & "【是】 关闭文件并上传至服务器" & vbcrlf & "【否】 取消本次修改同步操作", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                ShowAppWindow(wj,5)
                Dim ftp As new ftpclient
                ftp.host="123123123"
                ftp.Account = "123123"
                ftp.password = "123123"
                ftp.UTF8 = True
                ftp.Upload(lj,"\报表生成文件\" & mb & "\"  & dr("wtdh") & "\" & wj )
                dr("本地校验码") = CRCCheckFile(lj)
                dr("服务器校验码") = CRCCheckFile(lj)
                dr.Save
            End If
        End If
    End If
End If
End Sub

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/15 15:11:00 [只看该作者]

第三方用法自己学习参考:https://docs.microsoft.com/zh-cn/dotnet/api/system.io.filesystemwatcher?view=netframework-4.8

试试

Public Sub OnRenamed(ByVal source As Object, ByVal e As System.IO.RenamedEventArgs)
Dim wj As String = FileSys.GetName(e.FullPath)
Dim lj,mb As String
If wj.Contains(".xlsx") Then
    Dim dr As DataRow = DataTables("bgffjl").SQLFind("[文件名] = '" & wj & "'")
If dr IsNot Nothing Then
    If wj.Contains("测试报告") Then
        mb = "测试报告"
    Else
        mb = "检测报告"
    End If
    lj = ProjectPath & "Excel\报告管理\" & mb & "\" & dr("wtdh") & "\" & wj
    
        If CRCCheckFile(lj) <> dr("本地校验码") Then
            If MessageBox.Show("【" & wj & "】报告已修改!是否同步至服务器?" & vbcrlf & "【是】 关闭文件并上传至服务器" & vbcrlf & "【否】 取消本次修改同步操作", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                ShowAppWindow(wj,5)
                Dim ftp As new ftpclient
                ftp.host="123123123"
                ftp.Account = "123123"
                ftp.password = "123123"
                ftp.UTF8 = True
                ftp.Upload(lj,"\报表生成文件\" & mb & "\"  & dr("wtdh") & "\" & wj )
                dr("本地校验码") = CRCCheckFile(lj)
                dr("服务器校验码") = CRCCheckFile(lj)
                dr.Save
            End If
        End If
    End If
End If
End Sub

 回到顶部