1个人认为,判断文件内容为空可以从两个角度来考虑,第一种是读取文件的内容,读到的内容是否为空字符串;第二种是直接判断文件的大校 伪 C# 代码: / 在代码头部引入 SystemIO 命名空间 / // 第一种方法 using(FileStream fs=new FileStrea
EhCachePlugin 如果不指定配置文件,会默认在 classpath 里面去找配置文件,这个行为是 EhCache 默认的。
loadPropertyFile 是历史原因,JFinal 在 2011 年开始应用于公司项目中,当时没有使用maven管理项目。
即便如此也很容易解决问题,JFinal 提供了 PathKitgetRootClassPath() 方法可以很方便地得到classPath,在使用 EhCachePlugin 或 loadPropertyFile 时可以这样加载classPath 下的配置文件:
new EhCachePlugin(PathKitgetRootClassPath()+"/ehcachexml"); loadPropertyFile(PathKitgetRootClassPath()+"/configtxt");
通常,文件、文件夹的时间属性指的是创建时间、最近访问时间和最近修改时间等几个具体属性。对于文件的上述属性可以通过GetFileTime()来获取,对于文件夹,在通过CreateFile()函数将其打开后,其获取得到的句柄可以当作文件句柄来使用。因此,通过GetFileTime()函数同样也可以得到文件夹的时间属性。GetFileTime()函数原型如下:
BOOLGetFileTime(
HANDLE hFile, // 文件句柄
LPFILETIME lpCreationTime, // 创建时间的地址
LPFILETIME lpLastAccessTime, //最近访问时间的地址
LPFILETIME lpLastWriteTime // 最近修改时间的地址
);
其中后三个参数均是指向FILETIME结构的指针,得到的也都是UTC时间,如果需要,可以通过FileTimeToLocalFileTime()函数将此UTC时间转化成本地时间。而且还可以进一步通过FileTimeToSystemTime()函数将其从文件时间格式转化成系统时间格式,转化后的时间格式将保存在一个SYSTEMTIME结构对象中。类似的,在将时间信息写入到文件夹属性时,如果不是文件时间格式也应当通过SystemTimeToFileTime()函数将其从系统时间格式转换成文件时间格式,然后再通过SetFileTime()函数将指定的时间写入到文件夹的时间属性中去。这样,在进行数据备份和恢复的过程中,包括根目录在内的所有文件夹都可以保持时间属性的一致。
// 获取指定文件夹的时间属性,入口参数DirName指定了待处理的文件夹,
//stime为一指向SYSTEMTIME结构的指针
BOOLCSetForderTimeDlg::GetDirTime(CString DirName, SYSTEMTIME &stime){
// 打开文件夹
HANDLE hDir = CreateFile (DirName,GENERIC_READ,
FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
FILETIME lpCreationTime; // 文件夹的创建时间
FILETIME lpLastAccessTime; // 对文件夹的最近访问时间
FILETIME lpLastWriteTime; // 文件夹的最近修改时间
// 获取文件夹时间属性信息
if (GetFileTime(hDir,&lpCreationTime, &lpLastAccessTime, &lpLastWriteTime)){
FILETIME ftime;
FileTimeToLocalFileTime(&lpLastWriteTime,&ftime); // 转换成本地时间
FileTimeToSystemTime(&ftime,&stime); // 转换成系统时间格式
}
CloseHandle(hDir); // 关闭打开过的文件夹
return retval;
}
// 设置指定文件夹的时间属性,入口参数DirName指定了待处理的文件夹,
//new_time为一指向SYSTEMTIME结构的指针
BOOLCSetForderTimeDlg::SetDirTime(CString DirName, SYSTEMTIME new_stime){
// 打开目录的Win32 API调用
HANDLE hDir = CreateFile(DirName,GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL, OPEN_EXISTING,
FILE_FLAG_BACKUP_SEMANTICS, NULL);
FILETIME lpCreationTime; // 文件夹的创建时间
FILETIME lpLastAccessTime; // 对文件夹的最近访问时间
FILETIME lpLastWriteTime; // 对文件夹的最近修改时间
SystemTimeToFileTime(&new_stime,&lpCreationTime); // 转换成文件时间格式
SystemTimeToFileTime(&new_stime,&lpLastAccessTime);
SystemTimeToFileTime(&new_stime,&lpLastWriteTime);
CloseHandle(hDir); // 关闭文件夹
return retval;
}
创建一个类去继承JfianlConfig,然后重写它里面的一个方法configRoute,再创建一个新的实例AdminRoutes,AdminRoutes这个类去继承Routes,Routes里面添加映射路径指定到controller,然后会默认跳转到controller里面的index方法。
路由拆分到 FrontRutes 与 AdminRoutes 之中配置的好处:
1:可分别配置不同的 baseViewPath 与 Interceptor
2:避免多人协同开发时,频繁修改此文件带来的版本冲突
3:避免本文件中内容过多,拆分后可读性增强
4:便于分模块管理路由
JFinal demo 中提供的 _paginatehtml文件,其中定义的宏paginate还具有urlParas这个参数,一般可以不去使用,楼主的需求,可以这样用:
1
2
3
4
5
6
<@paginate totalRow=housePagetotalRow
pageSize=housePagepageSize
currentPage=housePagepageNumber
totalPage=housePagetotalPage
actionUrl="/news/news_list/"
urlParas="-${otherPara}" />
urlParas 也可以是问号挂参的形式,如:
urlParas="var=${var}"
以上就是关于jfinal 上传文件时 怎样判断文件是否为空全部的内容,包括:jfinal 上传文件时 怎样判断文件是否为空、请教一个JFinal配置文件加载的问题、JFinal 怎么在getFile前获取必须的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)