By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,738 Members | 1,480 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,738 IT Pros & Developers. It's quick & easy.

delete file problem

P: n/a
i try to print image file in a directory using PrintDocument. It will raise
printPage event to draw image to the printer. The file will be deleted
after print and the directory will be checked every second to get new file
inside it.
Where should i do the delete function? The way to print image is get from
msdn. Can tell me where can i refer to other better ways to print the
image file.
Thank you.

Public fileName As String

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub

Sub printImage(ByVal fileName As String)
Dim pd As New PrintDocument
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
pd.Print()
End Sub

Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As
PrintPageEventArgs)
' Draw a picture.
ev.Graphics.DrawImage(Image.FromFile(fileName),
ev.Graphics.VisibleClipBounds)
' Indicate that this is the last page to print.
ev.HasMorePages = False
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Dim dir As New DirectoryInfo("c:\dir")
Dim fi As FileInfo() = dir.GetFiles()
Dim fitemp As FileInfo

For Each fitemp In fi
fileName = fitemp.FullName
printImage(fileName)
Next
End Sub

___
Newsgroups brought to you courtesy of www.dotnetjohn.com
Nov 21 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Sorry dude,

can't help much with the printing image side of things, but I hope this is a
HUGE help to you. Instead of using a timer that checks every second, use the
filesystemwatch component. IT ROCKS.

It allows you to select a folder (including sub folders) and watch it and
raise events based on whats going on.

I have attached a small demo project, just add a form (leave it named as
Form1) then go into the code and replace all code with what is below, Run
(F5) then create a txt file in c:\, then open it and change it, rename it
and delete it, it will raise the 4 different events in the filewatch
compoment. It is a cool tool! :)

Regards,

Michael Proctor
Public Class Form1

Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

Public Sub New()

MyBase.New()

'This call is required by the Windows Form Designer.

InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'Required by the Windows Form Designer

Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer

'It can be modified using the Windows Form Designer.

'Do not modify it using the code editor.

Friend WithEvents fsWatch As System.IO.FileSystemWatcher

Friend WithEvents Label1 As System.Windows.Forms.Label

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

Me.fsWatch = New System.IO.FileSystemWatcher

Me.Label1 = New System.Windows.Forms.Label

CType(Me.fsWatch, System.ComponentModel.ISupportInitialize).BeginIni t()

Me.SuspendLayout()

'

'fsWatch

'

Me.fsWatch.EnableRaisingEvents = True

Me.fsWatch.Path = "c:\test\"

Me.fsWatch.SynchronizingObject = Me

'

'Label1

'

Me.Label1.Location = New System.Drawing.Point(176, 56)

Me.Label1.Name = "Label1"

Me.Label1.TabIndex = 0

Me.Label1.Text = "Label1"

'

'Form1

'

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(292, 273)

Me.Controls.Add(Me.Label1)

Me.Name = "Form1"

Me.Text = "Form1"

CType(Me.fsWatch, System.ComponentModel.ISupportInitialize).EndInit( )

Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load

fsWatch.Filter = "*.txt"

fsWatch.Path = "c:\"

fsWatch.EnableRaisingEvents = True

End Sub

Private Sub fsWatch_Changed(ByVal sender As System.Object, ByVal e As
System.IO.FileSystemEventArgs) Handles fsWatch.Changed

MsgBox("File: " & e.Name & ControlChars.CrLf & "Path: " & e.FullPath &
ControlChars.CrLf & ControlChars.CrLf & "Was Changed :|")

End Sub

Private Sub fsWatch_Created(ByVal sender As Object, ByVal e As
System.IO.FileSystemEventArgs) Handles fsWatch.Created

MsgBox("File: " & e.Name & ControlChars.CrLf & "Path: " & e.FullPath &
ControlChars.CrLf & ControlChars.CrLf & "Was Created :)")

End Sub

Private Sub fsWatch_Deleted(ByVal sender As Object, ByVal e As
System.IO.FileSystemEventArgs) Handles fsWatch.Deleted

MsgBox("File: " & e.Name & ControlChars.CrLf & "Path: " & e.FullPath &
ControlChars.CrLf & ControlChars.CrLf & "Was Deleted :(")

End Sub

Private Sub fsWatch_Renamed(ByVal sender As Object, ByVal e As
System.IO.RenamedEventArgs) Handles fsWatch.Renamed

MsgBox("File: " & e.Name & ControlChars.CrLf & "Path: " & e.FullPath &
ControlChars.CrLf & ControlChars.CrLf & "Was Renamed >:-|")

End Sub

Private Sub fsWatch_Error(ByVal sender As Object, ByVal e As
System.IO.ErrorEventArgs) Handles fsWatch.Error

MsgBox("Error: " & e.GetException.Message & " in source: " &
e.GetException.Source)

End Sub

End Class

"apple" <ap*******@hotmail.com> wrote in message
news:uj**************@tk2msftngp13.phx.gbl...
i try to print image file in a directory using PrintDocument. It will raise
printPage event to draw image to the printer. The file will be deleted
after print and the directory will be checked every second to get new file
inside it.
Where should i do the delete function? The way to print image is get from
msdn. Can tell me where can i refer to other better ways to print the
image file.
Thank you.

Public fileName As String

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
End Sub

Sub printImage(ByVal fileName As String)
Dim pd As New PrintDocument
AddHandler pd.PrintPage, AddressOf Me.pd_PrintPage
pd.Print()
End Sub

Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As
PrintPageEventArgs)
' Draw a picture.
ev.Graphics.DrawImage(Image.FromFile(fileName),
ev.Graphics.VisibleClipBounds)
' Indicate that this is the last page to print.
ev.HasMorePages = False
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Dim dir As New DirectoryInfo("c:\dir")
Dim fi As FileInfo() = dir.GetFiles()
Dim fitemp As FileInfo

For Each fitemp In fi
fileName = fitemp.FullName
printImage(fileName)
Next
End Sub

___
Newsgroups brought to you courtesy of www.dotnetjohn.com

Nov 21 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.