求高手解决下多成目录结构问题

lfssay 2011-12-08 05:40:48
#include <windows.h>
#include "MyFileTime.h"

JNIEXPORT jstring JNICALL Java_cn_imu_jni_MyFileTime_getFileCreationTime(JNIEnv *env, jobject cls, jstring FileName)
{
HANDLE hFile;
FILETIME creationTime;
FILETIME lastAccessTime;
FILETIME lastWriteTime;
FILETIME creationLocalTime;
SYSTEMTIME creationSystemTime;
jstring result;
char fileTimeString[30];

hFile = CreateFile((char *)env->GetStringUTFChars(FileName, 0), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if(hFile == INVALID_HANDLE_VALUE) return env->NewStringUTF("");
if(GetFileTime(hFile, &creationTime, &lastAccessTime, &lastWriteTime))
{
if(FileTimeToLocalFileTime(&creationTime, &creationLocalTime))
{
if(FileTimeToSystemTime(&creationLocalTime, &creationSystemTime))
{
sprintf(fileTimeString,
"%04d-%02d-%02d %02d:%02d:%02d\0",
creationSystemTime.wYear,
creationSystemTime.wMonth,
creationSystemTime.wDay,
creationSystemTime.wHour,
creationSystemTime.wMinute,
creationSystemTime.wSecond);
result = env->NewStringUTF(fileTimeString);
}
else
result = env->NewStringUTF("");
}
else
result = env->NewStringUTF("");
}
else
result = env->NewStringUTF("");
CloseHandle(hFile);
return result;
}


这么改才能让它能识别多层目录结构,现在只能处理最多3层
...全文
70 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzcmx2008 2011-12-09
  • 打赏
  • 举报
回复
没弄过
lfssay 2011-12-09
  • 打赏
  • 举报
回复
昨儿个 回去看了下,原来是读取时候的编码问题。。。
lfssay 2011-12-09
  • 打赏
  • 举报
回复
现在是目录结构中是英文的可以, 如果包含有汉字就报错、、、、
在creatFile 前 打印的文件路径是正常的, 求解释。。


const char *str = (TCHAR *)env->GetStringUTFChars(FileName, 0);
printf("%s", str); // 这里是正常的,汉字也是正常
hFile = CreateFile(str, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_WRITE | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_NO_BUFFERING, NULL);
lfssay 2011-12-08
  • 打赏
  • 举报
回复
这个是用于返回文件的创建时间的, 如果文件目录过多的话就不行
如:D:/AA/BB/cc.txt 可以 ;
D:/AA/BB/CC/dd.txt 就不能,; 求解

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧