開発環境 |
Visual C++ 2015 |
実行環境 |
Windows 10 Home 64bit |
プロジェクトの種類 |
Win32 Console Application |
プロジェクト名 |
dirtest |
追加のオプション |
Empty project |
dirtest.cpp
#include <fcntl.h> // _O_WTEXT
#include <io.h> // _setmode
#include <stdio.h> // _fileno
#include <stdlib.h>
#include <wchar.h>
int wmain(int argc, wchar_t *argv[])
{
_setmode(_fileno(stdout), _O_WTEXT);
_setmode(_fileno(stderr), _O_WTEXT);
wchar_t dir[_MAX_PATH] = L"";
if (argc == 2) {
size_t len = wcslen(argv[1]);
if (_MAX_PATH - 5 < len) {
fwprintf(stderr, L"error: ディレクトリが長過ぎます。\n");
return 1;
}
wcscpy_s(dir, argv[1]);
if (0 < len && dir[len - 1] != L'\\') {
wcscat_s(dir, L"\\");
}
}
wcscat_s(dir, L"*.*");
struct _wfinddata_t fi; // fileinfo
intptr_t handle = _wfindfirst(dir, &fi);
if (handle == -1) {
fwprintf(stderr, L"error: 検索に失敗しました。\n");
return 1;
}
do {
wprintf(L"%04x %llu %10u %s\n",
fi.attrib, // 属性
fi.time_write, // 更新日時
fi.size, // サイズ
fi.name); // 名前
} while (_wfindnext(handle, &fi) == 0);
_findclose(handle);
return 0;
}
最終更新:2016年11月15日 11:58