0

ファイルパスを確認できるように、 strFileNotifyInfo[1].FileName (Wchar_t) を文字列に変換したいと考えています。しかし、私はそれを機能させることはできません。

これが私のコードです:

while(TRUE)
{
    if( ReadDirectoryChangesW( hDir, (LPVOID)&strFileNotifyInfo, sizeof(strFileNotifyInfo), FALSE, FILE_NOTIFY_CHANGE_LAST_WRITE || FILE_NOTIFY_CHANGE_CREATION, &dwBytesReturned, NULL, NULL) == 0)
    {
        cout << "Reading Directory Change" << endl;
    }
    else
    {

        cout << ("File Modified: ") << strFileNotifyInfo[1].FileName << endl;
        cout << ("Loop: ") << nCounter++ << endl;
    }
}
4

2 に答える 2

0

FileNameはnullで終了しないことにも注意してください。

WCHAR* filename_w = strFileNotifyInfo[1].FileName;
DWORD filename_len = strFileNotifyInfo[1].FileNameLength;
std::string filename(filename_w, filename_w + filename_len);
std::cout << "File Modified: " << filename << std::endl;
于 2013-02-10T17:15:47.177 に答える
0

wcoutワイド文字データを操作するときに使用します。

std::wcout << L"File Modified: " << strFileNotifyInfo[1].FileName << std::endl;
于 2013-02-10T16:47:40.857 に答える