0
該程序從當前已修改的文件夾中提取文件,並在將文件放入另一文件夾後,批處理文件將刪除該源文件夾中未修改文件的其餘部分。將文件複製回特定文件夾
我的程序應該做的最後一件事是從單獨的文件夾中複製文件,並將它們放回該源文件夾中。
但我的程序只提取修改後的文件,刪除該文件夾中的其餘文件,但是當我運行程序也複製並將新文件放入源文件夾時,它不會執行它。有誰知道爲什麼?
Imports System.IO
Public Class frmExtractionator
' Dim txtFiles1 As Control
Dim sourceDirectory As String = "F:\CopierFolderforTestDriveCapstone"
Dim archiveDirectory As String = "F:\FilesExtracted"
Dim originalDirectory As String = "F:\OriginalTestFiles"
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Try
Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)
If (Not System.IO.Directory.Exists(archiveDirectory)) Then
System.IO.Directory.CreateDirectory(archiveDirectory)
End If
For Each currentFileLoc As String In txtFiles
Dim fileName = currentFileLoc.Substring(sourceDirectory.Length + 1)
If (IO.File.GetLastWriteTime(currentFileLoc).ToString("MM/dd/yyyy") = DateTime.Now.ToString("MM/dd/yyyy")) Then
MessageBox.Show(currentFileLoc & " moved", "Moved Succesfully")
File.Move(currentFileLoc, Path.Combine(archiveDirectory, fileName))
End If
Next
Catch eT As Exception
Console.WriteLine(eT.Message)
End Try
System.Diagnostics.Process.Start("F:\poop.bat")
Try
Dim txtFiles2 = Directory.EnumerateFiles(originalDirectory)
For Each currentFileLoc2 As String In txtFiles2
Dim fileName = currentFileLoc2.Substring(originalDirectory.Length + 1)
File.Move(currentFileLoc2, Path.Combine(sourceDirectory, fileName))
Next
Catch eT As Exception
Console.WriteLine(eT.Message)
End Try
End Sub
End Class
我改變你的答案在我的代碼,但是從orginalDirectory文件仍然不會複製到SourceDirectory –
則可能是因爲該批次當程序試圖將文件複製到源目錄時,文件仍然在刪除源目錄中的文件? –
如果其他bat文件也在使用這些文件,我會考慮將它的邏輯轉移到.NET代碼中以消除導致問題的可能問題。有2個不同的進程操縱文件增加了一個類似於多個線程的複雜度級別,我不認爲這是真的需要。 – DarrenMB