カテゴリー
アーカイブ
2020/11/07 / フォルダの更新日時の変更 への1件のコメント
今までファイルの更新日時の変更は使っていた.
https://www.vector.co.jp/soft/winnt/util/se500182.html
が,このツールでフォルダの更新日時を変更しようとするとできない.
コードは CFile::SetStatus を使用している.
CFileStatus fs ;
CFile::GetStatus(file,fs) ;
fs.m_mtime = newTime ;
CFile::SetStatus(file,fs) ;
CFile::SetStatus の中(…\atlmfc\src\mfc\filest.cpp)を見ると ::SetFileTime を使用している.
また Linux などでも使える utime(…\crt\src\utime.c)も ::SetFileTime を使っている.
VC 6 で作成したものをデバッガで追いかけると ::CreateFile で 0xffffffff が返ってきている.
ASUSTOR NAS で試すと,特に問題なく変更できる.
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ cat t_utime.cpp
#include <clocale>
#include "i_trace.hxx"
#include "filetime.hxx"
#include "itls_tmp.hxx"
#include "c_which.hxx"
int _tmain (int argc,TCHAR* argv[])
{
_tsetlocale(LC_ALL,_T("")) ;
{
tstring temp_path = ::Get_i_Tools_tmp_date() ;
tstring fold_path = ::Path_AddLastSP(temp_path) + ::Now_Format(_T("%H%M%S")) ;
tstring file_path = ::Path_AddLastSP(temp_path) + ::Now_Format(_T("%H%M%S")) + _T(".tmp") ;
{
::Folder_Create (fold_path) ;
::File_CreateEmpty(file_path) ;
}
{
time_t f_time = ::File_GetMTime(file_path.c_str()) ;
f_time-= 3600*24*7 ;
::File_SetMTime(file_path.c_str(),f_time) ;
::File_SetMTime(fold_path.c_str(),f_time) ;
}
{
tstring cmd = tstring(cmd_ls_la) + _T(" ") + ::QuotM_Add_Auto(temp_path) ;
_tsystem(cmd.c_str()) ;
}
}
return 0 ;
}
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ g++ t_utime.cpp -Wall
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ ll
total 136
drwxrwxrwx 2 Iwao users 4.0K Nov 7 16:24 ./
drwxrwxrwx 3 Iwao users 4.0K Nov 7 15:32 ../
-rwxr-xr-x 1 Iwao users 122.7K Nov 7 16:24 a.out*
-rwxrwxrwx 1 Iwao users 838 Nov 7 16:22 t_utime.cpp*
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $ ./a.out
total 0
drwxr-xr-x 3 Iwao users 80 Nov 7 16:24 .
drwxr-xr-x 3 Iwao users 60 Nov 7 16:24 ..
drwxr-xr-x 2 Iwao users 40 Oct 31 16:24 162451
-rw------- 1 Iwao users 0 Oct 31 16:24 162451.tmp
Iwao@AS5202T:/volume1/home/Iwao/gcc_test/Test/t_linux/t_mtime/t_utime $
今日はここまで.
2024/01/04
フォルダの更新日時の設定
Is this 投稿 useful?
Useful
Useless
0 of 0 people say this 投稿 is useful.