2

私は確かに Win32 API でのプログラミングの専門家ではありませんが、CreateFile関数を使用して、値を使用してハンドルが解放されると、オペレーティング システムによって削除されるようにマークできることを学びましたFILE_FLAG_DELETE_ON_CLOSE。を使用して同じことを行う方法が見つからないようですCreateDirectory。または、何かを見逃していますか?

必要に応じて、この特定のフォルダー内の変更 (作成された新しいファイルなど) をサブスクライブし、フォルダー内のすべてのファイルにこのフラグを付けることはできますか?

4

1 に答える 1

5

FILE_FLAG_BACKUP_SEMANTICS フラグを使用して、ディレクトリへのハンドルを開くことができます。

#include <windows.h>
#include <stdio.h>
void main()
{
    CreateDirectory(".\\testdir",NULL);
    system("pause");
    HANDLE hDir = CreateFile(".\\testdir",0,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,0,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_DELETE_ON_CLOSE,NULL);
    CloseHandle(hDir);
}

これは、私がテストしたマシン (ディレクトリが空の場合) で機能しましたが、有効な方法として文書化されているかどうかはわかりません。

于 2011-04-13T17:50:11.880 に答える