Gute Morgen zusammen,
jetzt will ich doch auch mal ein wenig zu dieser Wissensdatenbank hinzufügen![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
bitte bis nach unten scrollen, habe noch ein Problem
Ich stand gestern vor dem Problem, dass ich alle Dateien innerhalb eines Verzeichnisses auflisten wollte. Bin allerdings hier (mit meinen Suchbegriffen) nicht fündig geworden und so dachte ich mir ich stell mal den kleinen Quellcode, den ich gefunden habe, hier rein:
nun habe ich aber auch schon gleich ein Problem:
So wie der Quellcode jetzt ist funktioniert er prima. Ich möchte nun allerdings diese Dateiennamen per TCP übertragen. Dazu habe ich bislang folgendes verwendet:
Was bei einem char* auch gar kein Problem ist. Wie kann ich jetzt nur diesen cFileName, welches anscheinend ein unsigned short* ist so umwandeln, dass ich es übertragen kann?
(Wieso muss es in C eigentlich soooo viele Datentypen geben
)
Besten Dank schonmal
Andreas
PS: Vielleicht kennt jemand eine gute Seite, wo man ein wenig über die gängigsten Datentypen nachlesen kann. So richtig habe ich das ganze mit TCHAR, WCHAR u.s.w. noch nicht verstanden. Ausserdem ist short für mich immer noch ein Zahlendatentyp...wieso kann ich dem Zeichen zuweisen?
Man merkt ich bin ein C++ Newbee![Roll eyes :rolleyes: :rolleyes:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f644.png)
jetzt will ich doch auch mal ein wenig zu dieser Wissensdatenbank hinzufügen
![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
bitte bis nach unten scrollen, habe noch ein Problem
Ich stand gestern vor dem Problem, dass ich alle Dateien innerhalb eines Verzeichnisses auflisten wollte. Bin allerdings hier (mit meinen Suchbegriffen) nicht fündig geworden und so dachte ich mir ich stell mal den kleinen Quellcode, den ich gefunden habe, hier rein:
C++:
HANDLE fHandle;
WIN32_FIND_DATA wfd;
fHandle=FindFirstFile("C:\\*",&wfd);
do
{
// Eintrag nur behandeln, wenn es nicht . oder .. ist (werden nur bei Unterverzeichnissen mit zurückgeliefert)
// hier könnte man z.B. auch mit lstrcmp auf . und .. vergleichen, was allerdings nicht ganz so effizient ist
if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
MessageBox(0,wfd.cFileName,"Folgendes Verzeichnis wurde gefunden:",0);
// Datei ist keine, sondern ein Verzeichnis...
// Hier könnte man dasselbe nochmal machen, um auch die
// Unterverzeichnisse zu scannen ;-)
}
else
{
MessageBox(0,wfd.cFileName,"Folgende Datei gefunden:",0);
}
}
}
while (FindNextFile(fHandle,&wfd));
FindClose(fHandle);
nun habe ich aber auch schon gleich ein Problem:
So wie der Quellcode jetzt ist funktioniert er prima. Ich möchte nun allerdings diese Dateiennamen per TCP übertragen. Dazu habe ich bislang folgendes verwendet:
C++:
sprintf( welcome, "%s", wfd.cFileName);
rc = send( sockConnected, welcome, strlen(welcome), NULL);
(Wieso muss es in C eigentlich soooo viele Datentypen geben
![Confused :confused: :confused:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f615.png)
Besten Dank schonmal
Andreas
PS: Vielleicht kennt jemand eine gute Seite, wo man ein wenig über die gängigsten Datentypen nachlesen kann. So richtig habe ich das ganze mit TCHAR, WCHAR u.s.w. noch nicht verstanden. Ausserdem ist short für mich immer noch ein Zahlendatentyp...wieso kann ich dem Zeichen zuweisen?
Man merkt ich bin ein C++ Newbee
![Roll eyes :rolleyes: :rolleyes:](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f644.png)
Zuletzt bearbeitet von einem Moderator: