さて、私はフォルダをスキャンして、Zone.Identifierタグでファイルを識別し、タグを削除できるものを書き込もうとしています(うまくいけば)。私はそれを行う方法を探していて、いくつかの異なる方法を試しています。
私はなどを使う機能を持っていますが、BackupRead()
私はこの種のことには少し新人であり、この方法でストリームを見つけることができた間、私はFindFirstStreamW()
生活を楽にするために、または少なくとももっと学ぶために使用したいと思っていましたこれは一般的に。
以下は、これを使用する最初の試みです。
int
StreamsFunctionAlt (
LPCTSTR lpFileName )
{
LPVOID lpFindStreamData;
HANDLE hFindStream;
STREAM_INFO_LEVELS InfoLevel;
DWORD dwFlags;
HANDLE hFile;
if ( !FileExists ( lpFileName ))
{
return 1;
}
lpFindStreamData = NULL;
InfoLevel = 0;
dwFlags = 0;
hFindStream = FindFirstStreamW ( lpFileName,
InfoLevel,
lpFindStreamData,
dwFlags );
if ( !hFindStream == INVALID_HANDLE_VALUE )
{
FindNextStreamW ( hFindStream,
lpFindStreamData );
}
FindClose ( hFindStream );
return 0;
}
私が見ているのは、私が望んでいるものではないと仮定して安全だと思うように lpFindStreamData
設定されNULL
、とどまっNULL
てFindFirstStreamW()
戻ってきます。は正しいファイル名であり、代替ストリームを持つファイルへのパスです。0xffffffff
lpFileName
前述のように、私は新人で、CとWindows APIを初めて使用するため、これを誤って使用している場合、ある種の恥ずかしいほど愚かなエラーを犯した場合、または間違ったツリーを吠えていると思われる場合は、お知らせください。 。