Hallo,
Ist vielleicht eine dumme Frage, aber wie kann ich das Laufwerk mittels einer relativer Pfadangabe wechseln?
Beispiel:
Laufwerk C:
Laufwerk D:
Ich bin Aktuell im Ordner c:\temp und möchte in den Ordner d:\test.
Wie kann ich das relativ realisieren?
Vielen Dank für Eure Antworten.
Grüsse, pro
Hallo pro,
was genau verstehst du unter einer relativen Pfadangabe?
Bzw. wo möchtest du das machen, in .NET oder einfach in der Konsole?
In der Konsole macht man das mit
D:
cd test
Gruss
Michael
Hallo,
in der Konsole geht auch
cd /d d:\test
also das von michlG als 1 Befehl.
Ansonsten geht relative Pfadangabe AFAIK nur innerhalb eines Laufwerks.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Vielen Dank für Eure Feedback.
Nicht mit mit zwei Befehlen aus der Konsole wie cd.
Sondern etwas in der Art : c:/temp/../d(?Wie hier?)/temp
Gruss, pro
Hallo,
bin mir ziemlich sicher dass das nicht geht. Der Wechsel eines Laufwerks ist "massiver" als ein Verzeichniswechsel. Von daher glaube ich nicht dass es das gibt.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo,
nur so eine Idee: vielleicht gehts mit dem "file://"-Protokoll. Das einzige was ich mir vorstellen könnte.
Gruß, MarsStein
Edit: wo ist da eigentlich der Sinn? Der relative Pfad würde ja immer den absoluten Pfad beinhalten... warum also nicht gleich den nehmen?
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo
Sinn eigentlich keinen, war eine Aufgabe an einer Schule.
Danke für die Antworten.
Gruss.
public static FileInfo RelativeWithDriveChange(String drive, String relPath)
{
String curDir = Directory.GetCurrentDirectory();
String newDir = drive + curDir.Substring(3, curDir.Length - 3);
Directory.SetCurrentDirectory(newDir);
// there are exceptions to catch
FileInfo result = new FileInfo(relPath);
Directory.SetCurrentDirectory(curDir);
return result;
}
// Usage - current dir c:\foo\bar\baz
FileInfo fi = RelativeWithDriveChange("d:\\", "..");
Debug.Print(fi.FullName); // should be d:\foo\bar
aber irgendwie hat man dadurch nichts gewonnen 😉
Hallo pro,
Path.Combine funktioniert auch dann korrekt, wenn beide Pfade einen Laufwerksbuchstaben enthalten. Das sollte dein Problem lösen.
herbivore