AlternateStreams enables you to read, write, delete, create and list alternate data streams (ADS) in an NTFS file. Under NTFS, each file has a "main" unnamed stream (this is the one the Framework's file I/O classes manipulate) as well as zero or more "alternate" named streams; for example, Internet Explorer uses an alternate stream named "Zone.Identifier" to record which security zone a downloaded file came from, and in general they can be used to conveniently store arbitrary metadata for a file without the need to resort to a database or a separate metadata file. They can also be used to create "compound storage" for application data: if your application needs to serialize ten objects to a single file, you would normally sequentially write them in XML or binary; however, to modify any of the objects, the entire file would need to be rewritten. With alternate streams you can simply create a separate named stream for each object and modify these streams individually. Please note that AlternateStreams requires Windows 2000/XP or later. [examples: 1, 2]
Download an evaluation copy of the library to try it in your own applications (or use the included test package). You can also view the documentation for this class online.