I need to lock the Log file once someone is using it and second person shouldn't able to write in log file. The code is shown below :
Imports System
Imports System.IO
Module FileTransfer
Sub Main()
Dim dtStart As Date = Now(), dtEnd As Date = Now()
Dim intNoofFiles As Integer = 0
Dim strLogFileName As String = "C:\Log\FileTransferLog_" + dtStart.Year.ToString().PadLeft(4, "0") + dtStart.Month.ToString().PadLeft(2, "0") + dtStart.Day.ToString().PadLeft(2, "0") + ".txt"
Dim oWrite As StreamWriter = File.AppendText(strLogFileName)
oWrite.WriteLine("=================================================================================================")
oWrite.WriteLine("Starting PRESTO File Transfer Job. Start Date: " + dtStart.ToString())
oWrite.WriteLine("=================================================================================================")
' Call main job
subMoveFiles("C:\Presto\Inbound\", "c:\PRESTO_FILES\", oWrite, intNoofFiles)
dtEnd = Now()
oWrite.WriteLine("=================================================================================================")
oWrite.WriteLine("Completed PRESTO File Transfer Job. End Date: " + dtEnd.ToString())
oWrite.WriteLine("Total number of files transferred: " + intNoofFiles.ToString())
oWrite.WriteLine("=================================================================================================")
oWrite.Close()
End Sub
Public Sub subMoveFiles(ByVal strSrcDirectory As String, ByVal strDstDirectory As String, ByRef oWrite As StreamWriter, ByRef intNoofFiles As Integer)
If strDstDirectory(strDstDirectory.Length - 1) <> Path.DirectorySeparatorChar Then
strDstDirectory += Path.DirectorySeparatorChar
End If
If Not Directory.Exists(strDstDirectory) Then
Directory.CreateDirectory(strDstDirectory)
End If
Dim strFileSystemEntries As String() = Directory.GetFileSystemEntries(strSrcDirectory)
Dim strFileSystemEntry As String = ""
For Each strFileSystemEntry In strFileSystemEntries
If (Directory.Exists(strFileSystemEntry)) Then
'Sub directories
subMoveFiles(strFileSystemEntry, strDstDirectory + Path.GetFileName(strFileSystemEntry), oWrite, intNoofFiles)
Else
' get the created date / last written date
If DateAdd(DateInterval.Minute, 5, File.GetLastWriteTime(strFileSystemEntry)) < Now() Then
oWrite.WriteLine("Transferring File: " + strFileSystemEntry)
' First Copy the file to the destination and then Delete
File.Copy(strFileSystemEntry, strDstDirectory + Path.GetFileName(strFileSystemEntry), True)
File.Delete(strFileSystemEntry)
intNoofFiles = intNoofFiles + 1
oWrite.WriteLine("Completed Transferring File: " + strFileSystemEntry)
End If
End If
Next
End Sub
End Module
!--removed tag-->
Enter your message below
Sign in or Join us (it's free).