首页
社区
课程
招聘
[分享]把文件的时间都设置成一样
发表于: 2013-12-21 16:10 4761

[分享]把文件的时间都设置成一样

2013-12-21 16:10
4761
不知道有没有人有跟我一样的想法,看到电脑里面的文件时间参差不齐,就很不顺眼,因此写了段把所有文件和文件夹时间都设置一样的代码,分享给同样有该需要的同学,亲测可用





#include <Windows.h>
#include <Stdio.h>
#include <Tchar.h>

VOID A(LPTSTR lpDir)
{
        HANDLE                                hListFile;
        TCHAR                                szFileName[MAX_PATH];
        TCHAR                                szSubPath[MAX_PATH];
        WIN32_FIND_DATA                fnd;
        HANDLE                                hFile;
        SYSTEMTIME                        localTime;
        SYSTEMTIME                        sysTime;
        FILETIME                        fileTime;
        TCHAR                                szMsg[512];

        lstrcpy(szFileName, lpDir);
        lstrcat(szFileName, _T("\\*"));

        hListFile = FindFirstFile(szFileName, &fnd);
        if(hListFile != INVALID_HANDLE_VALUE)
        {
                do
                {
                        if(lstrcmp(fnd.cFileName, _T(".")) == 0 ||
                                lstrcmp(fnd.cFileName, _T("..")) == 0)
                                continue;

                        lstrcpy(szSubPath, lpDir);
                        lstrcat(szSubPath, _T("\\"));
                        lstrcat(szSubPath, fnd.cFileName);

                        ZeroMemory(&localTime, sizeof(SYSTEMTIME));
                        localTime.wYear = 2013;//2013年
                        localTime.wMonth = 12;//12月
                        localTime.wDay = 21;//21日
                        TzSpecificLocalTimeToSystemTime(NULL, &localTime, &sysTime);//加这一句是为了让时间正好是2013年12月21日 0点0分0秒
                        SystemTimeToFileTime(&sysTime, &fileTime);//系统时间到文件时间
                        if(fnd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)//文件是目录
                        {
                                A(szSubPath);//遍历子目录

                                hFile = CreateFile(szSubPath,
                                        FILE_WRITE_ATTRIBUTES,//这里只给一个写入文件属性的权限
                                        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,//尽可能不影响其它文件
                                        NULL,
                                        OPEN_EXISTING,//打开已经存在的文件
                                        FILE_FLAG_BACKUP_SEMANTICS,
                                        NULL);
                        }
                        else
                        {
                                hFile = CreateFile(szSubPath,
                                        FILE_WRITE_ATTRIBUTES,//这里只给一个写入文件属性的权限
                                        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,//尽可能不影响其它文件
                                        NULL,
                                        OPEN_EXISTING ,//打开已经存在的文件
                                        FILE_ATTRIBUTE_NORMAL ,
                                        NULL);
                        }
                        if(hFile != INVALID_HANDLE_VALUE)
                        {
                                SetFileTime(hFile,
                                        &fileTime,
                                        &fileTime,
                                        &fileTime);//创建时间、访问时间、修改时间都一样
                                CloseHandle(hFile);
                        }
                        else//保证不遗漏任何一个文件或者目录
                        {
                                wsprintf(szMsg, _T("无法访问 %s 文件"), szSubPath);
                                MessageBox(NULL, szMsg, _T("注意"), MB_ICONWARNING);
                        }
                }
                while(FindNextFile(hListFile, &fnd));

                FindClose(hListFile);
        }
}

int _tmain(int argc, TCHAR *argv[])
{
        A(_T("D:\\MyProgram"));//要遍历的目录
        return 0;
}

[课程]Linux pwn 探索篇!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 233
活跃值: (10)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
资深强迫症患者!
2013-12-21 16:17
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
楼主强迫症, 看这个都不顺眼
2013-12-21 16:19
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
时间排序有时候很重要,你这样一搞微软不得哭了:劳资给你开发的功能都被你废掉了
2013-12-21 16:24
0
雪    币: 225
活跃值: (73)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
呵呵,我测试下看能不能修改时间! 如果能,我用mfc写个文件时间修改工具吧!
2013-12-21 16:31
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
重点是关注SetFileTime
2013-12-21 17:17
0
雪    币: 29
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
再加个开机启动
2013-12-21 17:41
0
雪    币: 1933
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
我很多时间 都是通过 文件 时间  找文件的 ,楼主 ,你全搞成 一个时间 ,我就伤不起了 !!病毒啊
2013-12-21 18:08
0
雪    币: 292
活跃值: (153)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
我喜欢!  我就有这种心态。。。 极其讨厌数字 12+1 !
2013-12-21 18:49
0
雪    币: 209
活跃值: (138)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
一点意见,加入FILE_SHARE_DELETE并不能达到“尽量少影响其他应用的效果”,比如说用此标志打开一个文件,那么记事本就打不开这文件了。

ps,楼主的强迫症还体现在:所有的包含文件的首字母变成大写。这要是换了平台就麻烦了。我的强迫症让我按照文件的实际名字来写include
2013-12-21 20:36
0
雪    币: 134
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这让我想起了“卑鄙的我”
2013-12-21 23:02
0
游客
登录 | 注册 方可回帖
返回
//