開発環境 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