Programm zum erstellen von Ordner
-
Ich habe gerade eben versucht, ein Programm zu erstellen, das einen Ordner auf dem Desktop erstellt. Das hat auch ohne weiteres geklappt. Ich wollte danach versuchen, erst den Namen des Ordner mit cin >> OrderName; einzulesen, um dann die Variable in den Befehl mkdir("C:\\Users\\MeinUser\\Desktop\\"); einzubinden, das die Variable hinter dem Backslash des Desktop's ist. Ich habe schon mehrfach gegooglet und konnte nichts dazu finden.
LG

-
Unbowed. schrieb:
Ich habe gerade eben versucht, ein Programm zu erstellen, das einen Ordner auf dem Desktop erstellt. Das hat auch ohne weiteres geklappt. Ich wollte danach versuchen, erst den Namen des Ordner mit cin >> OrderName; einzulesen, um dann die Variable in den Befehl mkdir("C:\\Users\\MeinUser\\Desktop\\"); einzubinden, das die Variable hinter dem Backslash des Desktop's ist. Ich habe schon mehrfach gegooglet und konnte nichts dazu finden.
Hi,
du machst aber keinesystem("...")aufrufe in deinem Quellcode, oder? Das ist nicht gut. Was du brauchst, ist boost::filesystem und std::string und dann ist das ein Dreizeiler und ganz einfach.
-
out schrieb:
Unbowed. schrieb:
Ich habe gerade eben versucht, ein Programm zu erstellen, das einen Ordner auf dem Desktop erstellt. Das hat auch ohne weiteres geklappt. Ich wollte danach versuchen, erst den Namen des Ordner mit cin >> OrderName; einzulesen, um dann die Variable in den Befehl mkdir("C:\\Users\\MeinUser\\Desktop\\"); einzubinden, das die Variable hinter dem Backslash des Desktop's ist. Ich habe schon mehrfach gegooglet und konnte nichts dazu finden.
Hi,
du machst aber keinesystem("...")aufrufe in deinem Quellcode, oder? Das ist nicht gut. Was du brauchst, ist boost::filesystem und std::string und dann ist das ein Dreizeiler und ganz einfach.
Nein das mache ich nicht

Ich werde es mal so versuchen, danke
-
Schau, so müsste es gehen:
#include <iostream> #include <string> #include <boost\filesystem.hpp> using namespace std; namespace fs = boost::filesystem; int main() { const string desktop = "C:\\Users\\Mando Diao\\Desktop\\"; string ordner_name; getline( cin, ordner_name ); const fs::path ordner_pfad = desktop + ordner_name; if( !fs::exists(ordner_pfad) ) // Wenns ihn schon gibt, brauchen wir ihn ja nicht mehr erstellen. :) { fs::create_directory( ordner_pfad ); } }
-
out schrieb:
Schau, so müsste es gehen:
#include <iostream> #include <string> #include <boost\filesystem.hpp> using namespace std; namespace fs = boost::filesystem; int main() { const string desktop = "C:\\Users\\Mando Diao\\Desktop\\"; string ordner_name; getline( cin, ordner_name ); const fs::path ordner_pfad = desktop + ordner_name; if( !fs::exists(ordner_pfad) ) // Wenns ihn schon gibt, brauchen wir ihn ja nicht mehr erstellen. :) { fs::create_directory( ordner_pfad ); } }Komisch, wenn ich deinen Code so nehme, findet er boost/filesystem.hpp angeblich nicht..
-
Unbowed. schrieb:
Komisch, wenn ich deinen Code so nehme, findet er boost/filesystem.hpp angeblich nicht..
Logisch. boost ist eine externe Bibliothek. Abhängig von deiner IDE musst du boost erstmal installieren. Mit welcher IDE arbeitest du?
-
Ehm, ich bin im Moment mit Dev C++ am gange. Vorher mit einer Lizensierten Microsoft Virsual Studio Professional 2008.
-
Unbowed. schrieb:
Ehm, ich bin im Moment mit Dev C++ am gange. Vorher mit einer Lizensierten Microsoft Virsual Studio Professional 2008.
Hmm dev-cpp
Unter Windows ist Visual Studio die Haupt-IDE. Da könnt ich dir eben erklären, wie du boost zum laufen bekommst. Aber dev-cpp hab ich nicht. Ich würd auf Visual Studio umsteigen, schon alleine wegen dem Debugger.Ich sehe gerade, dass es den boost-installer für VS 2010 gar nicht mehr gibt
. Das ist ja doof, sonst hättest du einfach eben boost und VS 2010 Express installieren können und fertig. Und für VS 2012 gabs noch nie einen boost-installer, soviel ich weiß :(. D.h. der einfachste Weg für dich dürfte sein:1. VS 2012 Express installieren:
http://www.microsoft.com/visualstudio/deu/downloads#d-express-windows-desktop2. BlueGo installieren: (An dieser Stelle ein Danke an Vertexwahn)
http://vertexwahn.de/index.html3. Mittels BlueGo die boost Libraries erstellen.
4. In VS 2012 ein neues Projekt erstellen, boost einbinden, Quellcode einfügen, und du bist fertig.

Hier gibts auch noch eine Anleitung, wenn man boost selbst aufsetzen möchte:
http://stackoverflow.com/questions/2629421/how-to-use-boost-in-visual-studio-2010/2641513#2641513
-
Ich hätte eigentlich noch meine Professional Version wenn mein Pc nicht abgestürtzt wäre und er jedesmal beim starten einen Bluescreen gehabt hätte.

Naja, dann werd ich das mal machen, danke

-
out schrieb:
Was du brauchst, ist boost::filesystem und std::string und dann ist das ein Dreizeiler und ganz einfach.

Das Blöde an der Lösung ist aber einfach der Overhead durch das Installieren von Boost. Wäre Filesystem eine Header-Only-Library, ok, dann geht das schnell. Aber es ist keine und das verkompliziert die Sache.
Ich rechne, wenn ich neue Projekte aufsetze und einrichte, immer mit etwa einem Tag, der nur dafür draufgeht, die Programme und Bibliotheken einzubinden und fertig zu machen.
Andererseits, man macht sowas für solche kleinen Projekte ein- zweimal und dann dauert das auch keine 5 Minuten mehr

-
out schrieb:
Unbowed. schrieb:
Ehm, ich bin im Moment mit Dev C++ am gange. Vorher mit einer Lizensierten Microsoft Virsual Studio Professional 2008.
Hmm dev-cpp
Unter Windows ist Visual Studio die Haupt-IDE. Da könnt ich dir eben erklären, wie du boost zum laufen bekommst. Aber dev-cpp hab ich nicht. Ich würd auf Visual Studio umsteigen, schon alleine wegen dem Debugger.Ich sehe gerade, dass es den boost-installer für VS 2010 gar nicht mehr gibt
. Das ist ja doof, sonst hättest du einfach eben boost und VS 2010 Express installieren können und fertig. Und für VS 2012 gabs noch nie einen boost-installer, soviel ich weiß :(. D.h. der einfachste Weg für dich dürfte sein:1. VS 2012 Express installieren:
http://www.microsoft.com/visualstudio/deu/downloads#d-express-windows-desktop2. BlueGo installieren: (An dieser Stelle ein Danke an Vertexwahn)
http://vertexwahn.de/index.html3. Mittels BlueGo die boost Libraries erstellen.
4. In VS 2012 ein neues Projekt erstellen, boost einbinden, Quellcode einfügen, und du bist fertig.

Hier gibts auch noch eine Anleitung, wenn man boost selbst aufsetzen möchte:
http://stackoverflow.com/questions/2629421/how-to-use-boost-in-visual-studio-2010/2641513#2641513Okay, habe alles gemacht und es funktioniert, danke !
