とあるサイトで、UNICODE版のAPIであれば255文字を超えるファイル名を扱える
との記載を見ました。そこで、ファイルのタイムスタンプを取得するアプリを
VC++(Unicode)で以下のように作ってみたのですが
CreateFileWの部分でエラーになりました。
255文字を超えるファイル名を扱うにはどうすればよいでしょうか。
※255文字以下に抑えるべき、は置いといて、技術的に可能か知りたいです。
以上、よろしくお願いします。
BOOL myGetFileTime(TCHAR *filename,
LPFILETIME lpC,
LPFILETIME lpA,
LPFILETIME lpW
);
int main() {
FILETIME ftC, ftA, ftR, ftl;
SYSTEMTIME st;
ULARGE_INTEGER ui;
if ( !myGetFileTime(T"\\\\192.168.1.3\\c$\\aaa・・・aa.txt", //255文字オーバー
&ftC,
&ftA,
&ftR)) {
perror("File does not exist\n");
return 0;
};
return 0;
}
BOOL myGetFileTime(TCHAR *filename,
LPFILETIME lpC,
LPFILETIME lpA,
LPFILETIME lpW
)
{
HANDLE hFile;
hFile = ::CreateFileW(filename,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if (hFile == INVALID_HANDLE_VALUE) {
/* failed to open the file */
return FALSE;
}
else {
/* get time */
::GetFileTime(hFile,
lpC,
lpA,
lpW);
}
::CloseHandle(hFile);
return TRUE;
};