Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Beispiel in diesem Thema veranschaulicht die Verwendung grundlegender NTFS-Dateisystemdatenströme.
In diesem Beispiel wird eine Datei namens "TestFile" mit einer Größe von 16 Bytes erstellt. Die Datei verfügt jedoch auch über einen zusätzlichen ::$DATA-Streamtyp namens "Stream", der zusätzliche 23 Bytes hinzufügt, die vom Betriebssystem nicht gemeldet werden. Wenn Sie die Dateigrößeneigenschaft für die Datei anzeigen, wird daher nur die Größe des Standarddatenstroms "::$DATA" für die Datei angezeigt.
#include <windows.h>
#include <stdio.h>
void main( )
{
HANDLE hFile, hStream;
DWORD dwRet;
hFile = CreateFile( TEXT("TestFile"), // Filename
GENERIC_WRITE, // Desired access
FILE_SHARE_WRITE, // Share flags
NULL, // Security Attributes
OPEN_ALWAYS, // Creation Disposition
0, // Flags and Attributes
NULL ); // OVERLAPPED pointer
if( hFile == INVALID_HANDLE_VALUE )
{
printf( "Cannot open TestFile\n" );
return;
}
else
{
WriteFile( hFile, // Handle
"This is TestFile", // Data to be written
16, // Size of data, in bytes
&dwRet, // Number of bytes written
NULL ); // OVERLAPPED pointer
CloseHandle( hFile );
hFile = INVALID_HANDLE_VALUE;
}
hStream = CreateFile( TEXT("TestFile:Stream"), // Filename
GENERIC_WRITE, // Desired access
FILE_SHARE_WRITE, // Share flags
NULL, // Security Attributes
OPEN_ALWAYS, // Creation Disposition
0, // Flags and Attributes
NULL ); // OVERLAPPED pointer
if( hStream == INVALID_HANDLE_VALUE )
printf( "Cannot open TestFile:Stream\n" );
else
{
WriteFile( hStream, // Handle
"This is TestFile:Stream", // Data to be written
23, // Size of data
&dwRet, // Number of bytes written
NULL); // OVERLAPPED pointer
CloseHandle( hStream );
hStream = INVALID_HANDLE_VALUE;
}
}
Wenn Sie Typ TestFile an einer Eingabeaufforderung eingeben, wird die folgende Ausgabe angezeigt:
This is TestFile
Wenn Sie jedoch die Wörter Type TestFile:Stream eingeben, wird der folgende Fehler generiert:
"Die Syntax für Dateiname, Verzeichnisname oder Volumebezeichnung ist falsch."
Verwenden Sie einen der folgenden Befehle, um anzuzeigen, was sich in TestFile:stream befindet:
Weitere < TestFile:Stream
Weitere < TestFile:Stream:$DATA
Der angezeigte Text lautet wie folgt:
This is TestFile:Stream
Zugehörige Themen