1
這是我第一次製作一個Windows服務應用程序。我試圖使用Windows服務應用程序將文件從一個文件夾移動到另一個文件夾。它會每10秒鐘完成一次。 這是我正在使用的代碼。它在Windows窗體應用程序中使用時起作用,但在Windows服務應用程序上使用它時不起作用。移動文件在Windows服務
如果我在OnStart中使用它,Timer1_Tick中的代碼將起作用。但在計時器中不起作用。
Protected Overrides Sub OnStart(ByVal args() As String)
Timer1.Enabled = True
End Sub
Protected Overrides Sub OnStop()
Timer1.Enabled = False
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim FileToMove As String
Dim MoveLocation As String
Dim count1 As Integer = 0
Dim files() As String = Directory.GetFiles("C:\Documents and Settings\dmmc.operation\Desktop\Q8")
Dim pdfFiles(100) As String
For i = 0 To files.Length - 1
If Path.GetExtension(files(i)) = ".pdf" Then
pdfFiles(count1) = files(i)
count1 += 1
End If
Next
For i = 0 To pdfFiles.Length - 1
If pdfFiles(i) <> "" Then
FileToMove = pdfFiles(i)
MoveLocation = "C:\Documents and Settings\dmmc.operation\Desktop\Output\" + Path.GetFileName(pdfFiles(i))
If File.Exists(FileToMove) = True Then
File.Move(FileToMove, MoveLocation)
End If
End If
Next
End Sub
我檢查了權限,所有都是正確的。 然後,我試着運行代碼沒有計時器,它的工作。 你認爲代碼中有錯誤嗎? – user1648225
這聽起來像你正在使用Windows.Forms.Timer。 Windows.Forms.Timer不能在Windows服務中工作(沒有窗體被實例化)。你應該使用System.Timers.Timer。我將用樣本編輯答案。 –
感謝您的代碼 – user1648225