Sourcecodes - Pfade von Ordnern ermitteln

Sprachenübersicht/C / C++/ C#/Daten & Ordner

Pfade von Ordnern ermitteln

Diese Seite wurde 2305 mal aufgerufen.

Diese Artikel wurde als uneditierbar gepostet, und darf, wenn nicht ausdrücklich erlaubt nicht auf anderen Seiten verbreitet, oder editiert werden! Printversion

Herzlichen Dank an Anton Staruschkin von www.cpp-programming.de/, für die Erlaubnis seine Quellcodes zu veröffentlichen.

In diesem Beispiel wird der Pfad des Desktop ? Ordners ermittelt und ausgegeben. Um einen anderen Pfad zu ermitteln, muss nur der erste Parameter der Funktion getDirectory() durch die gewünschte Definition ersetzt werden. In dem Ausschnitt aus der shlobj.h seht ihr die zur Verfügung stehenden Definitionen.

Code:


#include <iostream>
#include <shlobj.h>

using namespace std;

/* Ausschnitt aus der shlobj.h */
/*
...
#define CSIDL_DESKTOP0         
#define CSIDL_INTERNET  1
#define CSIDL_PROGRAMS2
#define CSIDL_CONTROLS3
#define CSIDL_PRINTERS4
#define CSIDL_PERSONAL5
#define CSIDL_FAVORITES6
#define CSIDL_STARTUP7
#define CSIDL_RECENT8
#define CSIDL_SENDTO9
#define CSIDL_BITBUCKET10
#define CSIDL_STARTMENU11
#define CSIDL_DESKTOPDIRECTORY16
#define CSIDL_DRIVES17
#define CSIDL_NETWORK18
#define CSIDL_NETHOOD19
#define CSIDL_FONTS20
#define CSIDL_TEMPLATES21
#define CSIDL_COMMON_STARTMENU22
#define CSIDL_COMMON_PROGRAMS23
#define CSIDL_COMMON_STARTUP24
#define CSIDL_COMMON_DESKTOPDIRECTORY25
#define CSIDL_APPDATA   26
#define CSIDL_PRINTHOOD 27
#define CSIDL_ALTSTARTUP    29
#define CSIDL_COMMON_ALTSTARTUP30
#define CSIDL_COMMON_FAVORITES31
#define CSIDL_INTERNET_CACHE   32
#define CSIDL_COOKIES33
#define CSIDL_HISTORY34
...
*/

bool getDirectory(DWORD id, LPSTR buf)
{
    LPITEMIDLIST pidl;
    if (SHGetSpecialFolderLocation(0,id,&pidl) == NOERROR)
    {
        SHGetPathFromIDList(pidl,buf);
        return true;
    }
    else 
    { 
        return false;
    }
}

int main()
{  
   char buf[100];  
   getDirectory(CSIDL_DESKTOP,buf);
   
   cout<<"Desktop - Ordner: "<<buf<<endl;    
   cin.get();
  return 0;
}

Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren?

Sprachenübersicht/C / C++/ C#/Daten & Ordner/Pfade von Ordnern ermitteln