Ordner erstellen

Coalminer

Mitglied
Mal ne ganz simple Frage

Wie erstelle ich am einfachsten einen Ordner mit C++ und MFC.
Klar dürfts über system(.....) gehen
aber ist das wirklich n sauberer Programmierstil ?

gibts für solche Operationen eine Standartklasse ?
 
Also ich denk mal, mit c++ selbst, kannstes vergessen.
Ich würd dir CreateDirectory oder MakeSureDirectoryPathExists aus der WinApi empfehlen.

edit: und von mfc hab ich keine Ahnung, aber viel komfortabler als das, kannstes auch damit nichmehr hinbekommen....
 
moin


Ich würde auch zu CreateDirectory raten, aber wenn du es noch schneller willst nimm mkdir(pfadname).


mfg
umbrasaxum
 
ok thx
hab noch ne frage - psst nichtmehr ganz zur überschrift des threads aber ich stell sie mal trotzem hier

wenn ich über ShellExcecute was aufruf z.B. so:

ShellExecute(NULL, "open", "eine.exe" , "-dieparameter", NULL, SW_SHOW);

An welchem Verzeichniss orientiert sich der Aufruf wenn ich keinen explizieten Pfad angebe ?
Gibt es eine Funktion die mir den Pfad zurückgibt aus welchem meine Anwenung gestartet wurde ?
Dann könnt ich die EXE die ich mit ShellExceute öffen will direkt ins selbe verzwichniss legen, und es wäre egal wenn später jemand die Software in nem anderen Verzeichniss ablegt.

(ich hoffe ihr versteht was ich meine *g*)
 
moin


Sowas orientiert sich immer an dem Pfad unter dem dein Programm zu finden ist.

Guckst du:
Code:
int main( int argc[ ], char *argv[ ] )
Wenn du das so machst steht in argc wieviele argument übergeben wurden und in argv wie die einzeilnen Argumente "aussehen".


mfg
umbrasaxum
 
<quote>Sowas orientiert sich immer an dem Pfad unter dem dein Programm zu finden ist.</quote>

Das dacht ich bisweilen auch.
Nur hab ich vorhin festgestellt das nach einem Aufruf von CFileDialog das aktuelle Verzeichniss nichtmehr auf das ursprünglich Verzeichniss gesetzt ist sondern auf das, welches man mit CFileDialog zuletzt angepeilt hat.

mit GetCurrentDirectory(MAX_PATH, cCurDir); kann man sich das anschauen.

Meine Frage ist jetzt eigendlich ob es eine Funktion gibt die mir den "*dasistderPfadausdemichgerufenwurde*" zurückliefert
so das ich ich mit
SetCurrentDirectory(MAX_PATH, cCurDir);
den Pfad wieder richtig zurücksetzen kann
 
moin


Du könntest doch GetCurrentDirectory ganz zu anfang einmal aufrufen und den Quellpfad erstmal abspeichern.

Oder du veruchst mal mit DeleteObject(...) dein CFileDialog Object zu "vernichten" und guckst was dann wieder aktuelle Pfad ist.


mfg
umbrasaxum
 
Hm, sowas gibts denk ich nicht.
Wenn du das wissen willst, speicher es bei Programmbeginn ab (oder an einer eventuellen Stelle, wo es nötig ist...).
Ansonsten, wenn du wissen willst, in welcher Directory deine Executable liegt, kannst du erst mit GetModuleFileName den Dateinamen bekommen und dir dann daraus das Verzeichnis holen.
 
Hab jetzt ma die Variante mit dem vorher abspeichern drin.
Ist leicht nachzuvllziehen und bereitet wenig Aufwand.

Danke jedenfalls für die Tips.
 
Zurück