2017-06-27 3 views
1

Derzeit kann mein Code Capture Image und gespeichert in definierten Speicherort, aber wenn ich das gleiche in der zweiten Mal versuchen Bild überschreiben, wenn der gleiche Dateiname in diesem Ordner vorhanden sind, müssen wir den Namen der Datei dynamisch ändern. Wie kann ich das tun?C#: Mehrere Bilder aufnehmen und im selben Ordner speichern?

Präsens Screen Capturing-Code ist:

private void CaptureMyScreen() 
{ 
    try 
    { 
     //Creating a new Bitmap object 
     Bitmap captureBitmap = new Bitmap(1024, 768, PixelFormat.Format32bppArgb); 

     //Creating a Rectangle object which will capture our Current Screen 
     Rectangle captureRectangle = Screen.AllScreens[0].Bounds; 

     //Creating a New Graphics Object 
     Graphics captureGraphics = Graphics.FromImage(captureBitmap); 

     //Copying Image from The Screen 
     captureGraphics.CopyFromScreen(captureRectangle.Left, captureRectangle.Top, 0, 0, captureRectangle.Size); 

     //Saving the Image File (I am here Saving it in My D drive). 
     captureBitmap.Save(@"D:\Capture.jpg", ImageFormat.Jpeg); 

     //Displaying the Successfull Result 

     MessageBox.Show("Screen Captured"); 
    } 

    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

Vor allem nie hart Code den Pfad und Dateinamen in Ihrer cs-Datei. Versuchen Sie, eine GUID an den Dateinamen anzuhängen. – Praveen

Antwort

4

Sie können GUID verwenden eindeutigen Namen für jede Capture-Datei zu erhalten. So etwas wie

string guid = Guid.NewGuid().ToString(); 
captureBitmap.Save(@"D:\Capture-" + guid + ".jpg",ImageFormat.Jpeg); 

oder verwenden Sie das aktuelle Datum und die Uhrzeit für das, wie folgt aus:

string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); 
captureBitmap.Save(@"D:\Capture-" + timestamp + ".jpg",ImageFormat.Jpeg); 
Verwandte Themen