ich konvertiere meine Wave-Datei in eine MP3-Datei durch den folgenden Code:Verwenden Sie relativen Pfad in Microsoft Surface-Anwendung?
internal bool convertToMp3()
{
string lameEXE = @"C:\Users\Roflcoptr\Documents\Visual Studio 2008\Projects\Prototype_Concept_2\Prototype_Concept_2\lame\lame.exe";
string lameArgs = "-V2";
string wavFile = fileName;
string mp3File = fileName.Replace("wav", "mp3");
Process process = new Process();
process.StartInfo = new ProcessStartInfo();
process.StartInfo.FileName = lameEXE;
process.StartInfo.Arguments = string.Format("{0} {1} {2}", lameArgs, wavFile, mp3File);
process.Start();
process.WaitForExit();
int exitCode = process.ExitCode;
if (exitCode == 0)
{
return true;
}
else
{
return false;
}
}
Dies funktioniert, aber jetzt würde Ich mag nicht auf die lame.exe den vollständigen Pfad verwenden, sondern ein relativen Pfad. Ich habe eine lame.exe in den Ordner/lame/im Stammverzeichnis des Projekts eingefügt. Wie kann ich darauf verweisen?
Die direkte Verwendung eines Pfads relativ zum Anwendungsverzeichnis ist eine schlechte Idee, da das Arbeitsverzeichnis möglicherweise nicht mit dem Anwendungsverzeichnis identisch ist. Dies kann zu Sicherheitslöchern führen. Sie sollten es also relativ zum Projektverzeichnis erweitern. In einfachen Fällen kann dies durch Verketten des relativen Pfads zum Anwendungsverzeichnis erfolgen. – CodesInChaos
@CodeInChaos stimme völlig zu, wenn die App das Arbeitsverzeichnis durchkreuzt, sollte das OP genau das tun, was du geschrieben hast, sonst funktioniert es (in der Debug-Version natürlich) – nan