treeScannerC/doc/winapi_notes.md

52 lines
1.7 KiB
Markdown
Raw Normal View History

2025-05-09 22:46:31 +02:00
# WIN32_FIND_DATA Strukturreferenz (Windows API)
Diese Struktur wird verwendet, um Dateiinformationen aus `FindFirstFile` und `FindNextFile` zu lesen.
## Definition (verkürzt)
```c
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
TCHAR cFileName[MAX_PATH];
TCHAR cAlternateFileName[14];
} WIN32_FIND_DATA;
```
## Wichtige Felder
| Feld | Typ | Beschreibung |
|-----------------------|----------|----------------------------------------------|
| `dwFileAttributes` | `DWORD` | Dateiattribute, z.B. `FILE_ATTRIBUTE_DIRECTORY` |
| `ftCreationTime` | `FILETIME` | Erstellungszeit |
| `ftLastWriteTime` | `FILETIME` | Letzte Änderung |
| `nFileSizeHigh` | `DWORD` | Dateigröße (oberer 32-Bit-Wert) |
| `nFileSizeLow` | `DWORD` | Dateigröße (unterer 32-Bit-Wert) |
| `cFileName` | `TCHAR[]`| Vollständiger Dateiname |
| `cAlternateFileName` | `TCHAR[]`| 8.3-Dateiname (DOS-kompatibel) |
## Beispiel
```c
WIN32_FIND_DATA find_data;
HANDLE hFind = FindFirstFile("C:\Beispiel\*", &find_data);
if (find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
printf("📁 %s\n", find_data.cFileName);
} else {
printf("📄 %s\n", find_data.cFileName);
}
```
## Weitere Hinweise
- Wird ausschließlich unter Windows verwendet
- Maximaler Pfad ist `MAX_PATH` (260 Zeichen)
- Unicode-Unterstützung über `FindFirstFileW` möglich (für `WCHAR` statt `TCHAR`)
---