注册 登录
编程论坛 VB6论坛

filecopy拷贝指定时间内的文件

snrtjat 发布于 2013-07-01 14:41, 583 次点击
只有本站会员才能查看附件,请 登录

我想拷贝指定时间内的文件到D:\123\下,该如何实现?
请版主们帮忙!先谢谢!
9 回复
#2
风吹过b2013-07-01 16:35
指定时间内生成的文件 ?

使用 FSO 对象。

使用 FSO 对象列出文件 ,然后查看生成时间,然后符合条件的再复制。

百度只找到 ASP 的例子。你 试着看吧。

<%
'创建一个FileSystemObject对象的事例
SetMyFileObject=Server.CreateObject("Scripting.FileSystemObject")
'创建一个File对象的事例
filename=server.mappath("./")&"\test.html"
SetMyfile=MyFileObject.GetFile(filename)
%>
<Br>名称:<%=Myfile.Name─>
<Br>所在路径:<%=Myfile.Path─>
<Br>所在驱动器:<%=Myfile.Drive─>
<Br>文件大小:<%=Myfile.size─>
<Br>文件类型:<%=Myfile.type─>
<Br>文件属性:<%=Myfile.Attributes─>
<Br>创建日期:<%=Myfile.DateCreated─>
#3
风吹过b2013-07-01 16:36
这个是 生成文件列表的。
都是 百度来的。


    Dim fso As Object, fpath As String
    Dim myfolder As Object
    fpath = "E:\初中同学"
    Set fso = CreateObject("scripting.filesystemobject")
    Set myfolder = fso.getfolder(fpath)
    For Each Item In myfolder.Files
       If UCase(Right(Item, 3)) = "TXT" Then Print Item
    Next
    Set fso = Nothing
#4
snrtjat2013-07-01 19:49
看着难呀,
#5
Artless2013-07-01 20:37
以下是引用snrtjat在2013-7-1 19:49:23的发言:

看着难呀,
在3#的基础上增加文件日期判断。
#6
snrtjat2013-07-02 09:48
两位版主能说的详细点吗?整了半天也没有整出来。
#7
snrtjat2013-07-02 09:56
只有本站会员才能查看附件,请 登录

就是在点击command1(copy)时根据进行段来进行文件复制、粘贴.
#8
风吹过b2013-07-03 19:12
我在  WIN7 里,没办法调试包含控件的 VB源代码。

        datetmp = fso.getfile(f4.Path).datelastmodified
这里取得到时间吗????
DateCreated      这个属性呢?

-----------------
另外,这种的定义是不行的。
    Dim f1, f2, f3, f4, f5 As Object
#9
snrtjat2013-07-04 09:07
程序代码:
Dim datetmp As String
    Dim fso As Object
    Dim f1 As Object, f2 As Object, f3 As Object, f4 As Object, f5 As Object
    Set fso = CreateObject("scripting.filesystemobject")
    Set f1 = fso.getfolder(Text1.Text)
    Set f2 = f1.Files
    Set f3 = f1.subfolders
   
    For Each f4 In f2
        datetmp = fso.getfile(f4.Path).datecreated
        If DateDiff("d", datetmp, Now) > Combo1.Text Then
            fso.getfile(f4.Path).Delete
        End If
    Next
    For Each f5 In f3
        If fso.getfolder(f5.Path).Size = 0 Then
            fso.getfolder(f5.Path).Delete
        End If
    Next
谢谢风老师,这个我已纠正过来,可以删除过期文件。

 Dim fso As Object, fpath As String
    Dim myfolder As Object
    fpath = "E:\初中同学"
    Set fso = CreateObject("scripting.filesystemobject")
    Set myfolder = fso.getfolder(fpath)
    For Each Item In myfolder.Files
       If UCase(Right(Item, 3)) = "TXT" Then Print Item
    Next
    Set fso = Nothing
在这个基础上进行文件日期判断,取的是item.datecreated吗?
#10
snrtjat2013-07-05 14:52
本人使用其它的方法已达到目的。
Dim fos As New Scripting.FileSystemObject
Dim f As Scripting.File
Dim TFolder As Scripting.Folder
    Set TFolder = fos.GetFolder(Text2.Text & "\")
    For Each f In TFolder.Files
        If f.DateCreated >= CDate(DTPicker1.Value) And f.DateCreated <= CDate(DTPicker2.Value) Then
           f.Copy Text1.Text & "\" & f.Name, True
        End If
    Next

1