Pfade die auf Desktop verweisen, werden nicht angenommen...
-
Hi,
wir wollen im Programm einen PFad eingeben lassen, auf dem Dateien mit Datensätzengespeichert sind, doch sobald der Desktop im Pfad auftaucht, wird er nicht angenommen...
Hat da jemand ne Erklärung???
(Borland C++ Builder 6)
-
Da wir 'immer noch' keine Hellseher sind, wäre ein Quellcodeausschnitt nicht schlecht
Prinzipiell ist das Desktop Verzeichnis genauso ein Verzeichnis wie jedes andere auch ...
Gruß Skay
-
lol,
hmm... quelltext wäre glaube ich nicht sehr nötig, da es ein ganz normaler öffnen dialog ist, ODER ebenvoid readipers (void) { char filepath[100]; strcpy(filepath,path); //path ist global deklariert, da es in strcat(filepath,"ipers.save"); //einer anderen Funktion eingelesen wird FILE*fipers=fopen(filepath,"rb+"); fread(&ipers,sizeof(ipers),1,fipers); fclose(fipers); }
Sobald, also in path etwas, wie "C:\Dokumente und Einstellungen\Testrechner\Desktop\Neuer Ordner" steht, öffnet er nix mehr
-
Zuerst würde ich die Länge des Pfades nicht auf 100 sondern auf MAX_PATH deklarieren.
char filepath[MAX_PATH];
Versuch weiterhin mal den Pfad in Anfürhungszeichen zu setzen, da Leerzeichen darin enthalten sind.
Gruß Skay
-
Wie meinst du das mit "in Anführungszeichen setzen"? In dem array vor und hinter die Eingabe Anführungszeichen?
-
Was mir spontan auffällt:
Dein Pfad solltest du mit doppelten "\" ausstatten."C:\\Dokumente und Einstellungen\\Testrechner\\Desktop\\Neuer Ordner"
-
es gibt auch CSIDLs für Desktop .. *anmerk*
-
Ja das mit den \\ wusste ich, nur wenn man das in ein Edit eingeben lässt macht er das automatisch, d.h. man kann seinen Pfad normal eingeben und es wird automatisch mit \\ in die Variable geschrieben
N00b frage: Was sind CSIDLs??
Ich denke es kommt tatsächlich, von der [100] begrenzung, mit MAX_PATH tuts......immer diese minifehler die alles zerschießen...
PS.: thx an euch