Revision history for CppVerzeichnisNavigation


Revision [5682]

Last edited on 2008-10-23 20:39:57 by MatthiasT
Additions:
Die Ausgabe sind die Unterverzeichnisse für den angegebenen Pfad.
Für den Fall, dass dieses Programm unter MS Visual Studio kompiliert werden soll, muss der **Zeichensatz** als **"Nicht festgelgt"** eingestellt werden.
Projekt > Eigenschaften > Konfigurationseigenschaftn > Allgemein > Zeichensatz
[[http://www.c-plusplus.de/forum/index.php Quelle]]
Deletions:
Die Ausgabe sind die Unterverzeichnisse für den angegebenen Pfad


Revision [5681]

Edited on 2008-10-23 20:34:31 by MatthiasT
Additions:
=====Navigation in den Verzeichnissen unter Windows (2000, XP, Vista)=====
Um Dateien stapelweise oder nach bestimmten Kriterien abarbeiten zu können, verwendet man dazu die Funktionen [[http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx FindFirstFile]] und [[http://msdn.microsoft.com/en-us/library/aa364428(VS.85).aspx FindNextFile]].
Die Attribute der damit gefundenen Dateien bzw. Verzeichnisse können mittels der [[http://msdn.microsoft.com/en-us/library/aa365740(VS.85).aspx WIN32_FIND_DATA]] Struktur abgefragt werden.
Das folgende Programm soll als Vorlage dienen und verdeutlicht den Einsatz.
%%(cpp)
#include <iostream>
#include <string>
#include <windows.h> //Benötigter Header
using std::cin;
using std::cout;
using std::string;
using std::endl;
int main()
{
string path;
cout << "Pfad fuer das zu durchsuchende Verzeichnis eingeben: " << endl;
getline(cin, path);
path = path + "\\*";
// Beginn der Navigation in den Verzeichnissen
HANDLE FileHandle;
WIN32_FIND_DATA wfd;
FileHandle = FindFirstFile(path.c_str(),&wfd);
do
{
// In jedem Ordner existieren die Navigationsverzecihnisse '.' und '..'
// Eintrag nur behandeln, wenn es nicht '.' oder '..' ist
if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) ))
{
// Z. B. auf Verzeichnisse untersuchen
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
cout << "Verzeichnis: " << wfd.cFileName << endl;
// Hier könnte man dasselbe nochmal machen, um auch die
// Unterverzeichnisse zu scannen
}
}
}
while (FindNextFile(FileHandle,&wfd));
FindClose(FileHandle);
return 0;
}
%%
Die Ausgabe sind die Unterverzeichnisse für den angegebenen Pfad
Deletions:
=====Titel=====


Revision [5680]

The oldest known version of this page was created on 2008-10-23 20:11:16 by MatthiasT
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki