2015-02-02 2 views
-1

Я использую таймер для захвата экрана после определенного количества времени и сохранения изображений по определенному пути.Удалить определенные файлы с компьютера, зная путь

Private Sub tmrPS1_Tick(sender As Object, e As EventArgs) Handles tmrPS1.Tick 
    Dim bounds As Rectangle 
    Dim screenshot As System.Drawing.Bitmap 
    Dim graph As Graphics 
    bounds = Screen.PrimaryScreen.Bounds 
    screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppArgb) 
    graph = Graphics.FromImage(screenshot) 
    graph.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy) 
    PictureBox1.Image = screenshot 
    PictureBox1.Image.Save("C:\ImagesFolder\1.jpg") 
    tmrPS1.Enabled = False 
End Sub 

И я хочу еще один таймер, чтобы удалить их после того, как я послал их почтой, потому что придется принимать новые. Мой вопрос: как удалить изображения, зная путь?

+1

System.IO.File.Delete (path)? https://msdn.microsoft.com/en-us/library/system.io.file.delete%28v=vs.110%29.aspx – TyCobb

+0

Если вы сохраняете файл всегда с тем же именем, что необходимо удалить это каждый раз, когда вы его сохраняете? – Steve

+0

Я беру пару печатных экранов за минуту, чтобы сохранить их и отправить по электронной почте. После этого каждый день начинается каждый день. Или он должен. Проблема заключается в том, что после первого сообщения электронной почты, когда нужно сделать новые изображения (например: старый 1.jpg должен быть заменен новым 1.jpg), я получаю сообщение об ошибке («Общая ошибка произошла в GDI +».) в этой строке кода: 'PictureBox1.Image.Save (« C: \ xampp \ debug \ 1.jpg »)' – Colin

ответ

1

Удалить/воссоздать папку, когда вы закончите с ней?

 If IO.Directory.Exists(DestinationFolder) Then IO.Directory.Delete(DestinationFolder, True) 
     Application.DoEvents() 
     IO.Directory.CreateDirectory(DestinationFolder) 

Этот код очищает файлы в «Temp» с тем же расширением, что и файл, который я сохраняю.

   With My.Computer.FileSystem 
        Dim s As String = Environ("temp") 
        For Each foundFile As String In .GetFiles(s, FileIO.SearchOption.SearchTopLevelOnly, "*.tmp.kml") 
         .DeleteFile(foundFile) ' clean up old output 
        Next 
       End With 
Смежные вопросы