六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用VC更改目錄的日期與時間

[摘要]我們在Windows環境下開發某些具有數據備份和恢復等功能的軟件時,需要在拷貝文件及其目錄時把文件和目錄的所有屬性,包括日期和時間都能完全地保存并還原出來。但我們發現,在Windows環境下沒有提供任何方法和手段讓我們修改一個目錄的日期和時間。在查找Win32 API時也只能看到修改文件時間的AP...
我們在Windows環境下開發某些具有數據備份和恢復等功能的軟件時,需要在拷貝文件及其目錄時把文件和目錄的所有屬性,包括日期和時間都能完全地保存并還原出來。但我們發現,在Windows環境下沒有提供任何方法和手段讓我們修改一個目錄的日期和時間。在查找Win32 API時也只能看到修改文件時間的API函數調用,沒有關于修改目錄時間的任何描述。在查看Windows提供的備份程序的功能實現時,發現它可以原樣地恢復所有子目錄的時間(很遺憾,根目錄的時間沒有恢復),于是我們就從與備份有關的Win32 API入手,終于找到解決之道:就是以“備份”方式,像打開文件那樣打開目錄。具體來說,就是以FILE—FLAG—BACKUP—SEMANTICS屬性來調用CreateFile() Win32 API函數來打開目錄,然后再調用和修改文件時間一樣的SetFileTime() Win32 API函數來修改目錄的時間即可。

  這樣,在我們的備份和恢復程序中,所有目錄(包括根目錄)都可以完全恢復原來的日期和時間了。同樣的技術也可以用于其它的用途,如可以考慮給Windows的資源管理器增加“修改目錄時間”的功能等。

  具體實現修改

  以下是具體實現的VC++ 6.0源代碼,它首先將指定目錄(如“C:\dir”)當前的時間顯示出來,然后把它修改成指定時間,最后把修改后的目錄的時間顯示出來。

  BOOL SetDirTime(char DirName, SYSTEMTIME new—stime) // 修改指定目錄的時間

  { HANDLE hDir;

hDir = CreateFile (  // 打開目錄的Win32 API調用

DirName,  

GENERIC—READ GENERIC—WRITE,

  // 必須“寫”方式打開

FILE—SHARE—READ FILE—SHARE—DELETE,NULL,OPEN—EXISTING,

  // 打開現存的目錄

FILE—FLAG—BACKUP—SEMANTICS,

  // 只有這樣才能打開目錄

NULL);

if (hDir ==INVALID—HANDLE—VALUE )

return FALSE; // 打開失敗時返回

FILETIME lpCreationTime;  

  // creation time目錄的創建時間

FILETIME lpLastAccessTime; // last access time最近一次訪問目錄的時間

FILETIME lpLastWriteTime;  // last write time最近一次修改目錄的時間

SystemTimeToFileTime(&new—stime, &lpCreationTime); // 轉換成文件的時間格式

SystemTimeToFileTime(&new—stime, &lpLastAccessTime);

SystemTimeToFileTime(&new—stime, &lpLastWriteTime);

BOOL retval = SetFileTime( // 修改目錄時間的Win32 API函數調用

hDir, &lpCreationTime,&lpLastAccessTime,&lpLastWriteTime);

  CloseHandle(hDir); // 關閉目錄

return retval;

  // 返回修改成功與否的返回碼

  }

  BOOL GetDirTime(char DirName, SYSTEMTIME & stime) // 獲取指定目錄的時間

  { HANDLE hDir;

hDir = CreateFile ( // 打開目錄的Win32 API調用

DirName,  GENERIC—READ,

  // 只需讀方式打開即可

FILE—SHARE—READ FILE—SHARE—DELETE, NULL, OPEN—EXISTING,

  // 打開現存的目錄

FILE—FLAG—BACKUP—SEMANTICS,NULL);

FILETIME lpCreationTime;  

  // creation time目錄創建時間

FILETIME lpLastAccessTime;

  // last access time目錄最近訪問時間

FILETIME lpLastWriteTime;  

  // last write time目錄最近修改時間

BOOL retval = GetFileTime(

  // 獲取目錄日期和時間的Win32 API調用

hDir,&lpCreationTime,&lpLastAccessTime &lpLastWriteTime);

if ( retval ){

FILETIME ftime;

FileTimeToLocalFileTime(&lpLastWriteTime, &ftime); // 轉換成本地時間

FileTimeToSystemTime(&ftime, &stime) ; // 轉換成系統時間格式}

CloseHandle(hDir);

return retval;}

  int DoTest(char DirName)

  { SYSTEMTIME stime;

printf(″testing for directory [%s]\n″, DirName);

if ( GetDirTime(DirName, stime) )

  // 顯示修改前目錄的時間

printf(″before change is %04d-%02d-%02d %02d:%02d:%02d\n″,

stime.wYear , stime.wMonth , stime.wDay ,

stime.wHour , stime.wMinute, stime.wSecond );

else

printf(″failed to get the datetime of directory...\n″);

stime.wYear = 1995;

stime.wMonth = 5;

stime.wDay = 12;

stime.wHour = 10 - 8; // GMT time, GMT+8 for China PRC

stime.wMinute = 11;

stime.wSecond = 12;

// GetSystemTime(&stime);

  // 如果要設置成當前的時間

if ( SetDirTime(DirName, stime) )

  // 修改目錄的時間

printf(″success to change datetime of directory.\n″);

else

printf(″failed to change the datetime of directory...\n″);

if ( GetDirTime(DirName, stime) )

  // 顯示修改后目錄的時間

printf(″after change is %04d-%02d-%02d %02d:%02d:%02d\n″,stime.wYear , stime.wMonth , stime.wDay ,stime.wHour , stime.wMinute, stime.wSecond );

else

printf(″failed to get the datetime of directory...\n″);

return 0;}

  void main(int argc, char argv[])

  { DoTest(″c:\\dir″);} 


主站蜘蛛池模板: 日韩一级欧美一级 | 欧美一级视频免费观看 | 色婷婷在线观看视频 | 欧美午夜性春猛xxxx | 欧美小视频在线观看 | 青青草国产免费国产 | 日韩福利视频高清免费看 | 在线免费观看亚洲视频 | 青青在线国产视频 | 色偷偷91综合久久噜噜 | 日韩一区二区三区视频在线观看 | 日韩欧美一区二区三区不卡在线 | 亚洲精品色婷婷在线影院麻豆 | 三级理论在线观看 | 亚洲欧美中文日韩在线v日本 | 亚洲国产精品高清在线一区 | 欧美资源在线 | 任我鲁这里有精品视频在线播 | 日韩视频亚洲 | 色婷婷久久合月综 | 欧美无人区码卡二三卡四卡 | 日本成人在线免费观看 | 日韩亚洲欧美在线观看 | 全国男人的天堂网站 | 青青操夜夜操 | 日韩经典一区 | 天堂在线网 | 亚洲日韩中文字幕在线播放 | 一区二区三区在线视频播放 | 中文字幕在线免费观看 | 色最快国产| 色迷迷网免费站视频在线观看 | 视频在线观看h | 天堂在线资源网 | 全黄一级裸片视频免费区 | 日韩精品久久久免费观看夜色 | 亚洲欧美在线观看一区二区 | 图片区欧美色图 | 四虎国内精品一区二区 | 最近中文字幕免费mv视频4 | 日本japanese丰满高清成人视 |