【问题标题】:Copy is not a member of System.IO.FileInfo in VB.NetCopy 不是 VB.Net 中 System.IO.FileInfo 的成员
【发布时间】:2014-03-28 20:45:32
【问题描述】:

我想知道如何将一个文件夹中的文件从今天起不到 2 天的时间复制到另一个文件夹。

这就是我所拥有的:

Dim source As New DirectoryInfo("C:\Users\username\Desktop\123")
Dim target As New DirectoryInfo("C:\Users\username\Desktop\345")
Dim files = source.GetFiles("*", SearchOption.AllDirectories).Where(Function(file) file.LastWriteTime.Date.Equals(Date.Today.AddDays(-2)))
          For Each file As FileInfo In files
            file.copy(file.FullName, target.FullName & "\" & file.Name, True)
        Next file

编辑:

错误截图:

【问题讨论】:

    标签: vb.net file copy directory date-difference


    【解决方案1】:
    Dim source As New DirectoryInfo("C:\Users\username\Desktop\123")
    Dim target As New DirectoryInfo("C:\Users\username\Desktop\345")
    Dim ChildFile As FileInfo
    For Each ChildFile In source.GetFiles("*", SearchOption.AllDirectories).Where(Function(file) file.LastWriteTime.Date.Equals(Date.Today.AddDays(-2)))
          ChildFile.CopyTo(Path.Combine(target.FullName, ChildFile.Name), False)
    Next
    

    【讨论】:

    • @Codemunkeee- 首先感谢您的回复。添加代码后,它仍然显示与上面屏幕截图相同的错误。你能告诉我为什么会发生这个错误吗?
    • 是的..不这样做我怎么能处理这样的事情:)
    • 检查了新代码,但文件没有复制到 dest 目录。
    • 不..甚至现在他们都没有复制:(
    【解决方案2】:

    第一个问题:在 For 循环中,您分配了一个变量名 file,这与具有相同名称的 System.IO.File 类发生冲突,因此您需要更改变量名,指定类Copy 方法。

    第二个问题:Copy 方法是System.IO.File 类的成员,而不是System.IO.FileInfo,后者只是一组用于检索文件信息的方法和属性,并且在 For 循环中您试图访问 @ 987654327@ 来自 FileInfo 对象的成员,但该成员不存在。

    那么你的代码应该是这样的:

    Imports System.IO
    
    Public Class Form1
    
        Private Sub Test() Handles MyBase.Load
    
            Dim Source As New DirectoryInfo("C:\Users\username\Desktop\123")
            Dim Target As New DirectoryInfo("C:\Users\username\Desktop\345")
    
            Dim Files As FileInfo() =
                (From [File] As FileInfo In Source.GetFiles("*", SearchOption.AllDirectories)
                 Where [File].LastWriteTime.Date.Equals(Date.Today.AddDays(-2))).ToArray
    
            For Each [File] As FileInfo In Files
                IO.File.Copy([File].FullName, 
                             Path.Combine(Target.FullName, [File].Name), True)
            Next [File]
    
        End Sub
    
    End Class
    

    【讨论】:

    • @ElektroStudios-感谢您的宝贵时间。按我的需要工作:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2019-06-28
    • 1970-01-01
    • 2013-03-10
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多