我们使用FSRM将我们的文件服务器上的旧文件(超过2年)归档到另一个目录中,方法是移动文件并用符号链接replace - 问题在于符号链接将脚本运行的date作为文件提交 – 无所事事与原来的提交人。 用户不满意,他们的一半文件有相同的date – 是否有可能修改符号链接的date是一样的原始文件,或重新从正确的date从头开始? 任何人在使用FSRM进行存档时遇到此问题?
这似乎是可能的,但很不容易。 支撑你自己…我知道没有实用工具可以做到这一点,但是有人殴打了一些似乎可行的代码 。
DWORD SetSymLinkTimesW(const wchar_t *filename, const FILETIME *ftc, const FILETIME *fta, const FILETIME *ftw) { DWORD ret; HANDLE h; h = CreateFileW(filename, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT, NULL); if(h != INVALID_HANDLE_VALUE) { if(SetFileTime(h, ftc, fta, ftw) == TRUE) { CloseHandle(h); ret = NO_ERROR; } else { ret = GetLastError(); CloseHandle(h); } } else ret = GetLastError(); return ret; }
I've just copied and pasted your code into a console application and it successfully changes the timestamps of a symlink for me (Win8.1 32-bit). int _tmain(int argc, _TCHAR* argv[]) { FILETIME ft; GetSystemTimeAsFileTime( &ft ); SetSymLinkTimesW( argv[1], &ft, &ft, &ft ); return 0; }
DirDate v6.3现在实现了这个 – http://www.datamystic.com/dirdate2.exe
更改符号链接(符号链接)的date和时间,也称为文件重新分析点。