C++ Visual C++ Laufwerkabfrage

Stui2000

Member
13 März 2012
14
0
Hallo, ich bin neu hier als tut mir Leid wenn ich etwas falsch mache.
Ich programmiere gerade mit "Microsoft Visual C++ 2010 Express" und möchte mit einem Programm eine Datei von einer Cd auf den Computer kopieren.
Der Code dafür ist z.B:
System::IO::File::Copy("E://datei.txt", "C://datei.txt", true);
Jetzt ist auf meinem Laptop der Pfad des Cd-Laufwerks E://... und bei meinem anderen Copmuter F://... wie kann ich abfragen wie der Pfad ist???
 
Moin.

Die eigentliche Frage is: Was willst du eigentlich? ;)
Welche CD meinst du z.B., wenn es zwei CD-Laufwerke gibt, die beide CDs beinhalten?

Du kannst dir Informationen über die Laufwerke über die WinAPI-Funktion GetDriveType() abrufen. Bei DRIVE_REMOVABLE besteht die Chance, dass du ein CD-Laufwerk hast. Vermutlich sind USB-Sticks und sowas aber auch von diesem Typ.
Dies ist die primitivste Methode, die mir einfallen würde. Da allerdings deine Anforderung schon sehr primitiv is, reichts dir ja vielleicht schon :)
 
Das scheint genau meine Methode zu sein, nur schick im Framework verbaut :yes:
 
Jetzt noch mal verständlich:

Ich möchte einfach nur von einem Laufwerk den Namen abfragen und dann von da etwas weg kopieren. Das kopieren ist kein Problem, aber ich brauche einen Code wie ich den Namen des Laufwerks abfragen kann
mfg
 
Ein CD-Laufwerk hat aber keinen Namen :think:

Lediglich die Festplatten-Partitionen lassen sich benennen.
 
zum Beispiel die Festplatte heißt C:// wenn man einen Pfad angeben muss.
Den namen möchte ich für ein Laufwerk abfragen.
 
Und welches Laufwerk soll das sein? :ugly:
Laufwerk C "heißt" C:, Laufwerk D "heißt" D:, .... Laufwerk Z "heißt" Z:.

Du suchst etwas, was du selber nicht weißt, wie es heißt. Das geht nicht.
 
OK: nochmal langsam zum Verstehen(hoffe ich)
was möchte ich:
eine Datei von einer Cd mittels eines Programms kopieren und an einen anderen Ort einfügen
wie möchte ich das machen:
mit dem Befehl "System::IO::File::Copy("E://datei.txt" "C://datei.txt", true"
das klappt auch
ABER:
wenn ich das Programm(das diesen Befehl beinhaltet) auf einem andern Computer ausführe, funktioniert es NICHT MEHR, weil da das Laufwerk wo die Cd(mit datei.txt) ist,nicht E://(wie bei mir) sondern z.B.:F:// ist
jetzt einigermaßen verstanden?
 
Zuletzt bearbeitet:
Ich habs verstanden. Du nicht ;)
Die eigentliche Frage is: Was willst du eigentlich? ;)
Welche CD meinst du z.B., wenn es zwei CD-Laufwerke gibt, die beide CDs beinhalten?
Solange du selber nicht weißt, was du willst, solange wirst du auch das Problem nicht lösen können.
 
kannst du nicht richtig lesen ???

Drive E:\
File type: CDRom

Da steht doch genau was du brauchst !

Code:
 foreach (DriveInfo d in allDrives) {
   if (d.DriveType=="CDROM") { kopiere }
}

wir beten hier nix runter, aber wenn du nicht mal das kannst, dann solltest Du das programmieren sein lassen !
 
Danke

Jetzt hab ichs :)
1.Danke an alle
2.Die "Unerfahrenheit" liegt daran, dass ich normal in Java programmiere:)
 
Zuletzt bearbeitet: