社区
C++ 语言
帖子详情
c/c++中,如何获得文件属性(创建时间,修改时间,访问时间)?
arryang01
2005-05-16 09:30:33
rt,我知道如何获得文件的大小的,可是创建时间,修改时间,访问时间如何获得?
...全文
3226
10
打赏
收藏
c/c++中,如何获得文件属性(创建时间,修改时间,访问时间)?
rt,我知道如何获得文件的大小的,可是创建时间,修改时间,访问时间如何获得?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arryang01
2005-05-17
打赏
举报
回复
那系统如果是跨平台的,api接口还能工作吗?
coolvc2002
2005-05-17
打赏
举报
回复
对于这种情况,只能调用操作系统提供的API了,因为没个系统下的文件是不同的,如果你的代码是跨平台(操作系统)的,只能用编译控制符号来控制调用哪个api。
比如:
#IFDEF WINDOW
......
#ELSE UNIX
......
#ELSE LINUX
......
#ENDDEF
fleshboy
2005-05-16
打赏
举报
回复
比方说我的系统给你提供一个接口,原形如下
long GetFileAttribute(char *szFileName, struct FILE_ATTRIB_S *pstFileAttrib)
你就可以调用这个接口来获得一个文件的各种属性,他们都会被包含在 FILE_ATTRIB_S结构中
----------------------------------------------------------------------------------------
帮楼主顶一下&借宝地一用
http://community.csdn.net/Expert/topic/4012/4012041.xml?temp=.352627
进者有分,嘿嘿
fleshboy
2005-05-16
打赏
举报
回复
不用系统提供的截口怎么可以呢,而且各个系统有可能会不太一样,
Win系统啊,*nix系统啊等还有vxworks,psos等等系统都有的系统调用。
zhousqy
2005-05-16
打赏
举报
回复
#include <sys/stat.h>
zhousqy
2005-05-16
打赏
举报
回复
struct stat里有三个这方面的字段,好像是st_mtime, st_ctime, st_atime
horisly
2005-05-16
打赏
举报
回复
C++只有标准的算法库,没有系统库……
yes.
===========
GetFileTime
=====
#include <windows.h>
#include <stdio.h>
//----------- Error Handling Function -------------------
void error(LPSTR lpszFunction)
{
CHAR szBuf[80];
DWORD dw = GetLastError();
sprintf(szBuf, "%s failed: GetLastError returned %u\n",
lpszFunction, dw);
MessageBox(NULL, szBuf, "Error", MB_OK);
ExitProcess(dw);
}
//--------------------------------------------------------
BOOL GetFileTime(HANDLE hFile, LPSTR lpszCreationTime,LPSTR lpszLastAccessTime,LPSTR lpszLastWriteTime)
{
FILETIME ftCreate, ftAccess, ftWrite;
SYSTEMTIME stUTC1, stLocal1,stUTC2,stLocal2,stUTC3,stLocal3;
// -------->获取 FileTime
if (!GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)){
error("GetFileTime()");
return FALSE;
}
//---------> 转换: FileTime --> LocalTime
FileTimeToSystemTime(&ftCreate, &stUTC1);
FileTimeToSystemTime(&ftAccess,&stUTC2);
FileTimeToSystemTime(&ftWrite,&stUTC3);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC1, &stLocal1);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC2, &stLocal2);
SystemTimeToTzSpecificLocalTime(NULL, &stUTC3, &stLocal3);
// ---------> Show the date and time.
wsprintf(lpszCreationTime, "创建时间:\t%02d/%02d/%d %02d:%02d",
stLocal1.wDay, stLocal1.wMonth, stLocal1.wYear,
stLocal1.wHour, stLocal1.wMinute);
wsprintf(lpszLastAccessTime, "最后访问时间:\t%02d/%02d/%d %02d:%02d",
stLocal2.wDay, stLocal2.wMonth, stLocal2.wYear,
stLocal2.wHour, stLocal2.wMinute);
wsprintf(lpszLastWriteTime, "最后修改时间:\t%02d/%02d/%d %02d:%02d",
stLocal3.wDay, stLocal3.wMonth, stLocal3.wYear,
stLocal3.wHour, stLocal3.wMinute);
return TRUE;
}
//----------------------------------------------------------------
void main(){
HANDLE hFile;
TCHAR szCreationTime[30],szLastAccessTime[30],szLastWriteTime[30];
hFile = CreateFile("text.txt",0,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
GetFileTime(hFile,szCreationTime,szLastAccessTime,szLastWriteTime);
if(hFile == INVALID_HANDLE_VALUE){
error("GetLastWriteTime()");
return;
}
printf("%s\n%s\n%s\n",szCreationTime,szLastAccessTime,szLastWriteTime);
CloseHandle(hFile);
system("pause");
}
积木
2005-05-16
打赏
举报
回复
C++只有标准的算法库,没有系统库……
arryang01
2005-05-16
打赏
举报
回复
不用api不星吗?文件大小可以直接用c++的函数读啊
oyljerry
2005-05-16
打赏
举报
回复
GetFileAttribute
V
C++
获得
文件属性
获取文件的
创建
时间
、
修改
时间
、
访问
时间
以及是否是只读、存档、隐藏、系统等属性。
V
C++
获得
文件属性
获取文件的
创建
时间
、
修改
时间
、
访问
时间
以及是否是只读、存档、隐藏、系统等属性。
C++
修改
文件属性
工具
c++
修改
文件属性
,
修改
文件
创建
时间
,最后
修改
时间
Java
获得
文件
创建
时间
编译成的DLL文件,和Java调用代码 博文链接:https://pet.iteye.com/blog/188313
批量更改文件
创建
时间
通过matlab程序批量更改文件
创建
时间
包含c和m两种文件格式
修改
文件
创建
时间
本文讲述了在Visual
C++
下编程实现对磁盘文件的属性进行获取以及更改的一般方法,并给出部分相关的关键代码。
C++ 语言
65,190
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章