标题:如何用VB编程监控指定文件夹下指定文件是否新增或修改?
只看楼主
kv48
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-7-17
结帖率:50%
已结贴  问题点数:10 回复次数:12 
如何用VB编程监控指定文件夹下指定文件是否新增或修改?
如何用VB编程监控指定文件夹下指定文件是否新增或修改?

有个flv视频文件会不定时地在C:\temp\pptt.flv中创建,且不同时间创建的文件名均为pptt.flv,也就是说随着时间的推移它会被覆盖,现在我要用VB编一个程序,如果发现这个pptt.flv创建了或修改了就将它复制并更名到
D:\flv\01.flv,下一个文件名为02.flv,以此类推,该如何做?

现在写了一个程序是这样的,但会出现错误70:拒绝的权限。本人初学,请朋友们帮我分析下原因,谢谢!

Private Sub Form_Load()
Timer1.Interval = 3000
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Static ft As Date, fn As Long
If Dir("C:\temp\pptt.flv") <> "" Then
    If FileDateTime("C:\temp\pptt.flv") <> ft Then
        ft = FileDateTime("C:\temp\pptt.flv")
        fn = fn + 1
        FileCopy "C:\temp\pptt.flv", "D:\flv\" & Format(fn, "00000") & ".flv"
    End If
End If
End Sub

出现错误70时 点调试,下面这段显黄色: FileCopy "C:\temp\pptt.flv", "D:\flv\" & Format(fn, "00000") & ".flv"
是因为当第二次启动这个小程序时,由于第一次已经产生了文件00001.flv,00002.flv等,再次运行时还是产生文件00001.flv,00002.flv,就会发现文件已经存在(并且可能在使用)于是就出现“拒绝的权限”错误,如何解决?
搜索更多相关主题的帖子: 文件夹 朋友 监控 如何 
2013-07-17 12:56
kv48
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-7-17
得分:0 
http://h.hiphotos.baidu.com/zhidao/wh%3D600%2C800/sign=7a14754d42166d2238221d92761325cf/aa64034f78f0f736802cbe870b55b319eac41361.jpg
想发张图上来,怎么找不到地方?
2013-07-17 13:39
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:4 
FileCopy "C:\temp\pptt.flv", "D:\flv\" & Format(fn, "00000") & ".flv"

在复制之前,用 DIR 命令 检查一下这个文件是否存在,如果存在,那么就继续使用下一个编号,然后再重新检查,直到找到一个新的编号,没有使用为止。

授人于鱼,不如授人于渔
早已停用QQ了
2013-07-17 14:58
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
得分:4 
怎么手机回不了帖?

本人QQ:775420425
2013-07-17 17:16
hjxlj
Rank: 10Rank: 10Rank: 10
来 自:江西
等 级:贵宾
威 望:14
帖 子:292
专家分:1519
注 册:2013-6-25
得分:0 
这个问题有两个基本解决方法。
一是在你上面代码中添加错误处理环节,在错误处理过程中不断改变变量fn的值,并尝试保存文件,直到不引发错误为止。
二是在保存文件之前,先不断循环增加变量fn的值。每增加一次,就判断文件是否存在。若存在则继续循环。若不存在则说明此时的fn值可用,这时便可保存文件。

本人QQ:775420425
2013-07-17 17:19
kv48
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-7-17
得分:0 
回复 3楼 风吹过b
能把程序写出来吗?我对VB不太熟悉。谢谢。
2013-07-18 10:23
kv48
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-7-17
得分:0 
回复 5楼 hjxlj
谢谢您的回复,能把程序写出来吗?谢谢。
2013-07-18 10:24
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
fn = fn + 1
        FileCopy "C:\temp\pptt.flv", "D:\flv\" & Format(fn, "00000") & ".flv"

改为
        fn = fn + 1            '因为你的FN是静态变量,所以每次调用时直接加1就是了,不需要从 1 开始搜索
dim s as string                '定义一个字符串变量
do
   s="D:\flv\" & Format(fn, "00000") & ".flv"        '生成目标文件名
   if dir(s)<>"" then                                '是否存在。  空串表示文件不存在,有内容表示文件存在
      fn=fn+1                                        '文件存在,FN 加 1 ,继续循环
   else
      exit do                      '不存在,则退出循环
   end if
loop
   FileCopy "C:\temp\pptt.flv", s

浏览器写的代码,你试试看吧。流程就是这种的。

授人于鱼,不如授人于渔
早已停用QQ了
2013-07-18 12:41
kv48
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-7-17
得分:0 
以下是引用风吹过b在2013-7-18 12:41:54的发言:

fn = fn + 1
        FileCopy "C:\temp\pptt.flv", "D:\flv\" & Format(fn, "00000") & ".flv"
 
改为
        fn = fn + 1            '因为你的FN是静态变量,所以每次调用时直接加1就是了,不需要从 1 开始搜索
dim s as string                '定义一个字符串变量
do
   s="D:\flv\" & Format(fn, "00000") & ".flv"        '生成目标文件名
   if dir(s)<>"" then                                '是否存在。  空串表示文件不存在,有内容表示文件存在
      fn=fn+1                                        '文件存在,FN 加 1 ,继续循环
   else
      exit do                      '不存在,则退出循环
   end if
loop
   FileCopy "C:\temp\pptt.flv", s
 
浏览器写的代码,你试试看吧。流程就是这种的。



还是一样的错误70,好像还没有解决。
2013-07-18 14:46
lowxiong
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:27
帖 子:652
专家分:3402
注 册:2008-5-7
得分:4 
在temp中缓冲的flv是拷贝不出来的,并且页面一关闭就消失了。如果要拷贝应该可以在Temporary Internet Files文件夹中找到并拷贝,许多提取flv影片的程序都是这样做的。
2013-07-18 15:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-417481-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.097610 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved