Timon3
Team ModMii
- Registriert
- 17 Juli 2013
- Beiträge
- 499
Hallo,
ich arbeite momentan an einem GUI-Downloader für ein Projekt in C#.
Dabei sollen nicht nur Dateien heruntergeladen werden, sondern, da ich die veränderten Daten nicht verteilen darf, sollen die heruntergeladenen Dateien mittels Differenz-Dateien gepatcht werden. Ist ja eigentlich kein Problem, deshalb wollte ich dafür das Programm jptch mitliefern und dann aus meinem Programm heraus aufrufen. Dafür habe ich mir eine Funktion geschrieben:
Das ganze funktioniert auch super. Bis darauf, dass der Pfad, in dem das Programm liegt, nicht zu lang sein darf. Denn als Beispiel ist hier ein Funktionsaufruf:
Wenn ich das Programm von einem Ordner, dessen Pfad nur recht kurz ist, aufrufe, ist das ganze kein Problem, es wird ordentlich gepatcht. Wenn ich aber einen längeren Pfad habe, z. B. "C:\Users\User\Documents\Visual Studio 2012\Projects\ModMii-Test\ModMii-Test\bin\Release" klappt das ganze nicht, obwohl es theoretisch gehen müsste - denn eigentlich sollte der Prozessaufruf laut diesem Link bis zu 8192 Zeichen unterstützen. Tut er aber nicht.
Jetzt ist die Frage: Warum ist das so? Kann mir da jemand auf die Sprünge helfen?
Wenn ihr mehr Code braucht, sagt Bescheid.
Vielen Dank im Voraus!
ich arbeite momentan an einem GUI-Downloader für ein Projekt in C#.
Dabei sollen nicht nur Dateien heruntergeladen werden, sondern, da ich die veränderten Daten nicht verteilen darf, sollen die heruntergeladenen Dateien mittels Differenz-Dateien gepatcht werden. Ist ja eigentlich kein Problem, deshalb wollte ich dafür das Programm jptch mitliefern und dann aus meinem Programm heraus aufrufen. Dafür habe ich mir eine Funktion geschrieben:
Code:
private void jptch(string arguments)
{
Process p = new Process();
p.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
p.StartInfo.FileName = "jptch.exe";
p.StartInfo.UseShellExecute = true;
p.StartInfo.Arguments = arguments;
p.Start();
p.WaitForExit();
}
Das ganze funktioniert auch super. Bis darauf, dass der Pfad, in dem das Programm liegt, nicht zu lang sein darf. Denn als Beispiel ist hier ein Funktionsaufruf:
Code:
jptch(textBox1.Text + @"\wad\Schritt 1 - IOS\IOS37-v5663.wad " + CurrDir + @"\extract\rodries\ios223.dif " + textBox1.Text + @"\wad\Schritt 2 - cIOS\IOS223[37]-v5.1R.wad");
Wenn ich das Programm von einem Ordner, dessen Pfad nur recht kurz ist, aufrufe, ist das ganze kein Problem, es wird ordentlich gepatcht. Wenn ich aber einen längeren Pfad habe, z. B. "C:\Users\User\Documents\Visual Studio 2012\Projects\ModMii-Test\ModMii-Test\bin\Release" klappt das ganze nicht, obwohl es theoretisch gehen müsste - denn eigentlich sollte der Prozessaufruf laut diesem Link bis zu 8192 Zeichen unterstützen. Tut er aber nicht.
Link schrieb:If you are using the CMD.EXE command processor, then you are also subject to the 8192 character command line length limit imposed by CMD.EXE.
Jetzt ist die Frage: Warum ist das so? Kann mir da jemand auf die Sprünge helfen?
Wenn ihr mehr Code braucht, sagt Bescheid.
Vielen Dank im Voraus!