如何在c ++中删除ADS(备用数据流)

Cna*_*eak 2 c winapi ntfs

我有一个文件让我说"c:\ file1.txt"有一个ADS文件让我们说stm所以"c:\ file1.txt:stm"现在我想删除stm而不修改file1

我在某个地方读到我需要一个没有ADS的旧文件副本file1.txt,以便通过用一个没有一个的流替换file1来删除ADS ...是否有更好更干净的方法呢?

Joh*_*nck 6

您需要做的就是按名称删除流.使用以下的Windows API:

DeleteFile("c:\\file1.txt:stm");
Run Code Online (Sandbox Code Playgroud)

您可以使用大量其他API来执行相同的操作,或命令行.

有用的参考:http://www.flexhex.com/docs/articles/alternate-streams.phtml