52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
|
# 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`)
|
|||
|
|
|||
|
---
|