MFC中获取文件的属性(包括文件创建时间、修改时间、访问时间、文件大小等)
2014-01-03 21:11
666 查看
之前在写一个文件下载工具,我负责写的是服务端,客户端给定一个时间戳,然后服务端进行扫描符合当前时间戳的所有文件,但是随着测试发现一个问题就是获取大文件出现异常,由于考虑不周全,之前获取文件大小使用的方法是:
long GetFileSize(CString filePath)
{
if (_stat(&st, filePath) == 0)
return 0;
return st.st_size;
}
上面这种方法只是用于小文件,当获取一个大文件的时候就应该用下面的方法了:
#include <sys/stat.h>
BOOL GetFileAttributes(struct _stati64 *st, CString filePath)
{
wchar_t *wchar = (wchar_t *)malloc(sizeof(wchar_t) * 1024);
MultiByteToWideChar( CP_ACP, 0, filePath, strlen(filePath)+1, wchar, sizeof(wchar_t) * 1024/sizeof(wchar[0]) );
if(0 != _wstati64(wchar, st))/*pFileName是文件的路径*/
{
free(wchar);
return FALSE;
}
free(wchar);
return TRUE;
}
例如调用的时候:
struct _stati64 st;
GetFileAttributes(&st, "C:\\123.txt");
下面来说一下:_stati64 这个结构体原型:
#if _INTEGRAL_MAX_BITS >= 64
struct _stati64 {
_dev_t st_dev;
_ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
_dev_t st_rdev;
__int64 st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
#endif
该结构体在STAT.H文件中定义的。重要的几个成员变量是文件大小:st_size;创建时间:st_ctime 修改时间:st_mtime 最近访问时间:st_atime
好了,今天就将文件属性的获取以及获取大文件就介绍到这里,如果有什么不懂或者我哪里讲错了的请及时联系: 新浪邮箱:chao_song2011@sina.cn 不胜感激!!!
long GetFileSize(CString filePath)
{
if (_stat(&st, filePath) == 0)
return 0;
return st.st_size;
}
上面这种方法只是用于小文件,当获取一个大文件的时候就应该用下面的方法了:
#include <sys/stat.h>
BOOL GetFileAttributes(struct _stati64 *st, CString filePath)
{
wchar_t *wchar = (wchar_t *)malloc(sizeof(wchar_t) * 1024);
MultiByteToWideChar( CP_ACP, 0, filePath, strlen(filePath)+1, wchar, sizeof(wchar_t) * 1024/sizeof(wchar[0]) );
if(0 != _wstati64(wchar, st))/*pFileName是文件的路径*/
{
free(wchar);
return FALSE;
}
free(wchar);
return TRUE;
}
例如调用的时候:
struct _stati64 st;
GetFileAttributes(&st, "C:\\123.txt");
下面来说一下:_stati64 这个结构体原型:
#if _INTEGRAL_MAX_BITS >= 64
struct _stati64 {
_dev_t st_dev;
_ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
_dev_t st_rdev;
__int64 st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
#endif
该结构体在STAT.H文件中定义的。重要的几个成员变量是文件大小:st_size;创建时间:st_ctime 修改时间:st_mtime 最近访问时间:st_atime
好了,今天就将文件属性的获取以及获取大文件就介绍到这里,如果有什么不懂或者我哪里讲错了的请及时联系: 新浪邮箱:chao_song2011@sina.cn 不胜感激!!!
相关文章推荐
- MFC中修改文件属性(包括文件创建时间、文件修改时间、文件访问时间、文件大小等)
- 设置文件属性里的时间,包括:创建时间、访问时间、修改时间
- VC++ 获取文件属性创建时间、修改时间和访问时间
- VC++ 获取文件属性创建时间、修改时间和访问时间
- php获取文件创建时间、修改时间、访问时间
- php获取文件创建时间、修改时间、访问时间
- C# 获取文件的修改时间、访问时间、创建时间
- php获取文件创建时间,修改时间,访问时间
- java获取文件的创建时间、修改时间和访问时间(含优化)
- 获取文件创建、修改最后访问时间
- C# 获取文件的修改时间、访问时间、创建时间
- Python3基础 getatime getctime getmtime 获取一个文件的最近访问时间 创建时间 最新修改时间
- 如何访问一个文件的创建、修改时间、文件属性
- PB 调用API获取文件的创建时间、访问时间、修改时间
- C# 获取文件的修改时间、访问时间、创建时间
- VC实现修改文件创建、访问、修改时间属性(转载)
- vbscript获取文件的创建时间、最后修改时间和最后访问时间的方法
- 修改文件(文件夹)的属性(隐藏,只读,存档,创建时间,最后访问时间,最后修改时间)
- VC ++实现 对文件的 隐藏, 只读 ,创建时间 , 最后修改时间 ,最后访问时间 属性的修改
- 获取文件创建时间、最后修改时间、访问时间