Directory Management

This section provides information on Windows API functions for managing directories, including creating, deleting, enumerating, and navigating directories.

Key Concepts

Core Functions

Creating Directories

Deleting Directories

Enumerating Directories

Getting Directory Information

Example Usage (C++)

#include <windows.h>
#include <iostream>

int main() {
    // Create a directory
    if (CreateDirectory(L"C:\\MyNewDir", NULL)) {
        std::wcout << L"Directory 'C:\\MyNewDir' created successfully." << std::endl;

        // Enumerate contents
        WIN32_FIND_DATA findFileData;
        HANDLE hFind = FindFirstFile(L"C:\\MyNewDir\\*", &findFileData);

        if (hFind != INVALID_HANDLE_VALUE) {
            std::wcout << L"Contents of 'C:\\MyNewDir':" << std::endl;
            do {
                if (!(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
                    std::wcout << L"  " << findFileData.cFileName << std::endl;
                }
            } while (FindNextFile(hFind, &findFileData) != FALSE);
            FindClose(hFind);
        } else {
            std::wcerr << L"Error enumerating directory. Error code: " << GetLastError() << std::endl;
        }

        // Delete the directory (must be empty)
        if (RemoveDirectory(L"C:\\MyNewDir")) {
            std::wcout << L"Directory 'C:\\MyNewDir' removed successfully." << std::endl;
        } else {
            std::wcerr << L"Error removing directory. Error code: " << GetLastError() << std::endl;
        }
    } else {
        std::wcerr << L"Failed to create directory. Error code: " << GetLastError() << std::endl;
    }

    return 0;
}

Note: Always check the return values of API functions and use GetLastError() to retrieve specific error codes for debugging.