2013-04-14 60 views
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 

回答

0

變化

Dim fileName = currentFileLoc2.Substring(originalDirectory.Length + 1) 

Dim FileName = IO.Path.GetFileName(currentFileLoc2) 
+0

我改變你的答案在我的代碼,但是從orginalDirectory文件仍然不會複製到SourceDirectory –

+0

則可能是因爲該批次當程序試圖將文件複製到源目錄時,文件仍然在刪除源目錄中的文件? –

+0

如果其他bat文件也在使用這些文件,我會考慮將它的邏輯轉移到.NET代碼中以消除導致問題的可能問題。有2個不同的進程操縱文件增加了一個類似於多個線程的複雜度級別,我不認爲這是真的需要。 – DarrenMB

相關問題