Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2005

CSharp, problem med Split

Hejsan jag försöker skapa en applikation som ska spara bilder när man trycker på PrintScreen i vald mapp med valt namn, men jag får inte till det.

Strängen skapas med detta:
string fname = Global.SettingsManager.Data.FileName;

Global.SettingsManager.Data.FileName innehåller detta:
%y-%m-%d\%h-%i-%s

Strängen ska användas här:
string fname = Global.SettingsManager.Data.FileName;
fname = fname.Replace("%y", DateTime.Now.Year.ToString());
fname = fname.Replace("%m", DateTime.Now.Month.ToString());
fname = fname.Replace("%d", DateTime.Now.Day.ToString());
fname = fname.Replace("%h", DateTime.Now.Hour.ToString());
fname = fname.Replace("%i", DateTime.Now.Minute.ToString());
fname = fname.Replace("%s", DateTime.Now.Second.ToString());

fname = fname.Replace("%ms", DateTime.Now.Millisecond.ToString());

bmpScreenshot.Save(Global.SettingsManager.Data.SavePath + @" + fname + .png", ImageFormat.Png);

Det värkar inte funka att använda tecknet "\" i strängen då den inte sparar då, men om jag tar bort den så funkar det.

När jag försöker spara bilden med "\" i strängen så säger den:
A first chance exception of type 'System.Runtime.InteropServices.ExternalException' occurred in System.Drawing.dll

Just nu sparar den bilderna utan "\" och då blir dom såhär:
C:\Bilder\2009-7-24 23-18-34.png

Men jag försöker åstadkomma så att den sparar så här:
C:\Bilder\2009-7-24\23-18-34.png

Någon som vet hur jag ska göra så att jag kan skapar en mapp med datumet som namn och sedan spara filen med tiden som namn?

Gigabyte 790XTA-UD4 | AMD Phenom II X4 955 Black Edition | Cooler Master V8 | Corsair Dominator 4 x 2Gb DDR3 | GTX 560 TI | Corsair SSD Force Series 115GB | 2TB Western Digital Caviar Green | Cooler Master Elite 334 Black | Logitech G110 | Logitech G700 | Logitech G930

Trädvy Permalänk
Hedersmedlem
Plats
Linköping
Registrerad
Apr 2004

Använd till exempel
System.IO.Directory.CreateDirectory()
för att först skapa katalogen.

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2005

Tack för snabbt svar.
Det gav mig en idé.
Jag återkommer om jag har ytterligare problem angående samma ämne.

Gigabyte 790XTA-UD4 | AMD Phenom II X4 955 Black Edition | Cooler Master V8 | Corsair Dominator 4 x 2Gb DDR3 | GTX 560 TI | Corsair SSD Force Series 115GB | 2TB Western Digital Caviar Green | Cooler Master Elite 334 Black | Logitech G110 | Logitech G700 | Logitech G930

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Jan 2005

Nu har jag löst det.
Tack så hjärtligt <3

Jag kommer att länka programmet när det är klart för dom som är intresserade.

Programmet kommer att fungera så att när du spelar så kan du trycka på PrintScreen så sparar den bilden i vald mapp med valt namn och sedan kommer det en text på skärmen innehållande texten "Bilden sparades utan problem" typ.

Gigabyte 790XTA-UD4 | AMD Phenom II X4 955 Black Edition | Cooler Master V8 | Corsair Dominator 4 x 2Gb DDR3 | GTX 560 TI | Corsair SSD Force Series 115GB | 2TB Western Digital Caviar Green | Cooler Master Elite 334 Black | Logitech G110 | Logitech G700 | Logitech G930

Trädvy Permalänk
Medlem
Plats
Laholm
Registrerad
Okt 2005

Varför inte använda .NET's inbyggda tidsformat?!?

string format = @yyyy-MM-dd\hh-mm-ss; string date = DateTime.Now.ToString(format);

ASP.NET programmerare i C#
Twitter: http://www.twitter.com/hagbarddenstore