判断大文件创建成功问题(如ftp上传后,判断上传成功)
2017-11-27 16:46
176 查看
关于大文件上传成功判断,这里举两个适用案例:
1、页面上传文件至服务器后,需要立即对文件进行处理,如解压、读取等操作;
2、通过ftp上传大文件后,立即对大文件进行备份,解压,读取数据等等;
3、....
这时,如果不判断文件上传成功,可能复制过去的只是文件的一部分,或者是解压不成功。
有人说通过Thread.sleep(10000),在操作文件前进行睡眠10s,这个并不是很好,睡的时间不够,可能文件还是只有一部分,睡得太久,会影响效率。
下面介绍一种判断方法:
/**
* 等待文件上传到服务器完全成功
* 文件在5s后大小不变,表示完全创建成功
* @param filePath 文件路径
* @return boolean
*/
private boolean fileIsCreateSuccess(String filePath) {
try {
File file;
file = new File(filePath);
long len1,len2;
len2 = file.length();
do {
len1 = len2;
Thread.sleep(5000);
file = new File(filePath);
len2 = file.length();
System.out.println("文件5s前后大小分别为:"+len1+","+len2);
} while (len1<len2);
return true;
} catch (Exception e) {
logger.error("文件创建失败", e);
return false;
}
}
本例因为文件一般都比较大所以选择的是比较5s前后文件大小,当然你也可以选择1s。
当然如果用到了FileInfo类也可使用她的Refresh方法刷新文件大小,如:
1、页面上传文件至服务器后,需要立即对文件进行处理,如解压、读取等操作;
2、通过ftp上传大文件后,立即对大文件进行备份,解压,读取数据等等;
3、....
这时,如果不判断文件上传成功,可能复制过去的只是文件的一部分,或者是解压不成功。
有人说通过Thread.sleep(10000),在操作文件前进行睡眠10s,这个并不是很好,睡的时间不够,可能文件还是只有一部分,睡得太久,会影响效率。
下面介绍一种判断方法:
/**
* 等待文件上传到服务器完全成功
* 文件在5s后大小不变,表示完全创建成功
* @param filePath 文件路径
* @return boolean
*/
private boolean fileIsCreateSuccess(String filePath) {
try {
File file;
file = new File(filePath);
long len1,len2;
len2 = file.length();
do {
len1 = len2;
Thread.sleep(5000);
file = new File(filePath);
len2 = file.length();
System.out.println("文件5s前后大小分别为:"+len1+","+len2);
} while (len1<len2);
return true;
} catch (Exception e) {
logger.error("文件创建失败", e);
return false;
}
}
本例因为文件一般都比较大所以选择的是比较5s前后文件大小,当然你也可以选择1s。
当然如果用到了FileInfo类也可使用她的Refresh方法刷新文件大小,如:
len1=len2; Thread.Sleep(1000);//等待1秒钟 fi.Refresh();//这个语句不能漏了 len2=fi.Length;
相关文章推荐
- 在程序里调用ftp批处理(sh)上传文件,如何判断文件已成功上传
- 使用edtftpnet上传文件到Serv-U出现乱码的问题,并且不能创建中文文件名或文件夹。
- jaVA使用FTP上传下载文件的问题
- 用eclipse创建tomcat项目后,文件上传目录路径问题
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- [导入].net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- ftp文件上传后大小改变问题解决
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- 解决GlobalSCAPE CuteFTP 6.0无法上传文件的问题(解决IE无法登录远程FTP问题)
- freenas内置ftp上传文件权限问题
- VB用API实现FTP上传文件,创建远程目录(类模块)
- 不知为何,最近碰到一个问题在上传.mdb,.bak,.exl,.iso等文件时会很慢,或不成功。
- .net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等 收藏
- net,C#,Ftp各种操作,上传,下载,删除文件,创建目录,删除目录,获得文件列表等
- jaVA使用FTP上传下载文件的问题