Ordner erstellen
-
hallo!
ich will ein Programm erstellen in dem der user einen ordner erstellen soll. Der Ordnername soll in einem EditFeld eingegeben und bei Knopfdruck (Button) erstellt werden.
????
-
void __fastcall TImageForm::BT_VERZEICHNIS_ANLEGENClick(TObject *Sender) { AnsiString NEWSUBDIR; AnsiString TEXT; if(pruefe_auf_SONDERZEICHEN(Trim(Edit8->Text))) { NEWSUBDIR=DirectoryListBox1->Directory; NEWSUBDIR+="\\"; NEWSUBDIR+=Edit8->Text ; if (!DirectoryExists(NEWSUBDIR)) { TEXT="Cannot create "; TEXT+=NEWSUBDIR; if (!CreateDir(NEWSUBDIR)) throw Exception(TEXT); DirectoryListBox1->Update(); } else { ShowMessage("Das Verzeichnis '" + NEWSUBDIR + "' existiert schon !!" ); } }//if() else { ShowMessage(" Im Dateinamen dürfen keine Sonderzeichen enthalten sein !"); Edit8->SetFocus(); } } bool __fastcall TImageForm::pruefe_auf_SONDERZEICHEN(AnsiString asSTR) { bool bOK=true; for(int i=1;i<=asSTR.Length();i++) { if(GUELTIG(asSTR[i])) { bOK=false; } } return bOK; } //--------------------------------------------------------------------------- bool __fastcall TImageForm::GUELTIG(char ZEICHEN) { if(ZEICHEN == '*' || ZEICHEN == '#' || ZEICHEN == '/' || ZEICHEN == '\\' || ZEICHEN == ':' || ZEICHEN == '?' || ZEICHEN == '>' || ZEICHEN == '<' || ZEICHEN == '|' || ZEICHEN == '\"' ) return true; else return false; } //---------------------------------------------------------------------------
-
Die Liste der ungültigen Zeichen ist nicht ganz korrekt (# ist erlaubt).
Man erhält sie z.B., wenn man im File-Explorer versucht, einen Ordner mit einem ungültigen Zeichen zu erstellen.YLIREBUS, Deine Art Variablen und Funktionen zu benennen, bereitet mir ein wenig Augenschmerzen. Aber natürlich ist das irgendwo Geschmackssache.
Nur so aus Interesse: Wo hast Du Dir das angewöhnt bzw. mit welcher Programmiersprache/IDE bist Du groß geworden?
-
Ein einfacher Verweis auf CreateDir o.ä. hätte es nicht getan?
Zumal deine Lösung ja auch nicht unbedingt das Gelbe vom Ei ist, wenn ich das so sagen darf.
Etwas eleganter:if (!CreateDirectory(dirname.c_str(), 0)) ShowMessage(SysErrorMessage(GetLastError()));
-
dschensky schrieb:
YLIREBUS, Deine Art Variablen und Funktionen zu benennen, bereitet mir ein wenig Augenschmerzen. Aber natürlich ist das irgendwo Geschmackssache.
Nur so aus Interesse: Wo hast Du Dir das angewöhnt bzw. mit welcher Programmiersprache/IDE bist Du groß geworden?In diesem Fall hieß meine IDE "Copy&Paste" von der Softwarefirma "ABGEschAUT"
:p