Heim >Backend-Entwicklung >C++ >Wie lese und ändere ich alternative NTFS-Datenströme mit .NET?
Der Zugriff auf und die Änderung alternativer NTFS-Datenströme (ADS) kann in verschiedenen Szenarien eine nützliche Technik sein. .NET bietet Funktionen für die Arbeit mit ADS durch die Interaktion mit der nativen Windows-API.
Die Schlüsselfunktionen bei der Manipulation von ADS sind CreateFile und DeviceIoControl. Hier ist ein Beispiel in C#, das die Verwendung dieser Funktionen demonstriert:
using System.Runtime.InteropServices; class Program { static void Main(string[] args) { // Open the main file stream IntPtr mainStream = NativeMethods.CreateFileW( "testfile", NativeConstants.GENERIC_WRITE, NativeConstants.FILE_SHARE_WRITE, IntPtr.Zero, NativeConstants.OPEN_ALWAYS, 0, IntPtr.Zero); // Open an alternate data stream for writing IntPtr stream = NativeMethods.CreateFileW( "testfile:stream", NativeConstants.GENERIC_WRITE, NativeConstants.FILE_SHARE_WRITE, IntPtr.Zero, NativeConstants.OPEN_ALWAYS, 0, IntPtr.Zero); } } public partial class NativeMethods { /// Return Type: HANDLE->void* ///lpFileName: LPCWSTR->WCHAR* ///dwDesiredAccess: DWORD->unsigned int ///dwShareMode: DWORD->unsigned int ///lpSecurityAttributes: LPSECURITY_ATTRIBUTES->_SECURITY_ATTRIBUTES* ///dwCreationDisposition: DWORD->unsigned int ///dwFlagsAndAttributes: DWORD->unsigned int ///hTemplateFile: HANDLE->void* [DllImportAttribute("kernel32.dll", EntryPoint = "CreateFileW")] public static extern System.IntPtr CreateFileW( [InAttribute()] [MarshalAsAttribute(UnmanagedType.LPWStr)] string lpFileName, uint dwDesiredAccess, uint dwShareMode, [InAttribute()] System.IntPtr lpSecurityAttributes, uint dwCreationDisposition, uint dwFlagsAndAttributes, [InAttribute()] System.IntPtr hTemplateFile ); } public partial class NativeConstants { /// GENERIC_WRITE -> (0x40000000L) public const int GENERIC_WRITE = 1073741824; /// FILE_SHARE_DELETE -> 0x00000004 public const int FILE_SHARE_DELETE = 4; /// FILE_SHARE_WRITE -> 0x00000002 public const int FILE_SHARE_WRITE = 2; /// FILE_SHARE_READ -> 0x00000001 public const int FILE_SHARE_READ = 1; /// OPEN_ALWAYS -> 4 public const int OPEN_ALWAYS = 4; }
Dieser Code bietet einen grundlegenden Ansatz für die Arbeit mit NTFS ADS in .NET und ermöglicht es Ihnen, die Funktionalität basierend auf Ihren spezifischen Anforderungen zu erweitern.
Das obige ist der detaillierte Inhalt vonWie lese und ändere ich alternative NTFS-Datenströme mit .NET?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!