2014-02-26 140 views
0

我想知道如何將文件複製到包含子目錄的目錄中,並且它們包含一些修改日期的文件。通過datemodified複製目錄和子目錄中的文件的最快方法

現在我需要將所有這些文件複製到另一個目錄。

這是我有哪些副本的所有文件和文件夾,但我只想要在從今天的日期前兩天修改的文件夾中的文件。 (對於前:今天的日期是26-02-2014我需要的所有文件從24-02-2014和低於日期複製到另一個文件夾。)

Public Sub CopyDirectory(ByVal sourcePath As String, ByVal destinationPath As String) 
    Dim sourceDirectoryInfo As New System.IO.DirectoryInfo(sourcePath) 

    ' If the destination folder don't exist then create it 
    If Not System.IO.Directory.Exists(destinationPath) Then 
     System.IO.Directory.CreateDirectory(destinationPath) 
    End If 

    Dim fileSystemInfo As System.IO.FileSystemInfo 
    For Each fileSystemInfo In sourceDirectoryInfo.GetFileSystemInfos 
     Dim destinationFileName As String = 
      System.IO.Path.Combine(destinationPath, fileSystemInfo.Name) 

     ' Now check whether its a file or a folder and take action accordingly 
     If TypeOf fileSystemInfo Is System.IO.FileInfo Then 
      System.IO.File.Copy(fileSystemInfo.FullName, destinationFileName, True) 
     Else 
      ' Recursively call the mothod to copy all the neste folders 
      CopyDirectory(fileSystemInfo.FullName, destinationFileName) 
     End If 
    Next 
End Sub 

這是代碼,只拷貝文件夾和dosent添加任何新的文件夾是在源路徑:

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] 

所以任何人都可以說如何實現這一目標?

回答

0

在c#中,File對象具有確定修改日期的方法。所以,你可以做這樣的事情:

DateTime today = DateTime.Today; 
foreach (string filename in Directory.GetFiles("C:\\Users\\username\\Desktop\\123")) { 
    DateTime fileModDate = File.GetLastWriteTime(filename); 
    if (fileModDate < today.AddDays(-2)) { 
     File.Copy(filename, destination); 
    } 
} 
0

這裏是回答您的查詢的鏈接 - Copy the entire contents of a directory in C#

你的情況,你會做一個複製文件之前會添加一個條件。類似下面顯示的那個或John在他的回答中使用的那個

if (File.GetLastWriteTime(path).CompareTo(DateTime.Today) <= -2) 
    { 
    ... 
    } 
相關問題