Hallo an Alle,
habe mal wieder ein Problem und komme nicht weiter. Ich Wandle mit Lame wav zu mp3 und möchte danach die *.wav in *.converted umbennen. Jetzt bringt mir mein Programm den Fehler, dass nicht auf die Datei zugegriffen werden kann, da ein sie bereits von einem anderen Prozess verwendet wird. Ich habe schon mit Dispose etc. herumprobiert und bekomme nichts hin.... ?( ?( ?( ?( ?(
Kann mir bitte jemand helfen...
Vielen Dank schon jetzt im Voraus...
for (int i = 0; i < GefundeneAudioDateien.GetLength(0); i++)
{
string datei = Convert.ToString(GefundeneAudioDateien[i]);
string[] splitdatei = datei.Split('.');
string fn_FullPath = Convert.ToString(GefundeneAudioDateien[i].FullName);
string fn_Directory = Convert.ToString(GefundeneAudioDateien[i].Directory);
ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = Application.StartupPath + @"\lame.exe";
psi.Arguments = "-V2" + " -q 0 " +
"\"" + fn_FullPath + "\"" + " " +
"\"" + fn_Directory + "\\" + splitdatei[0] + ".mp3" + "\"";
Process p = Process.Start(psi);
p.Close();
p.Dispose();
Thread.Sleep(1000);
var fileInfo = new FileInfo(fn_FullPath);
File.Move(fn_FullPath, fileInfo.Directory + "\\" + splitdatei[0] + ".converted");
}
Hi,
naja - da wird die lame.exe wohl noch ein Handle drauf haben.
Vorschlag: Versuch doch mal mit Process.WaitForExit auf die Lame.exe zu warten anstatt die einfach abzuschließen... (Das Thread.Sleep ist allemal nur ein sehr hässlicher Hack)
LG