java编程:再上传文件的时候,怎样判断所上传到的文件夹里有没有跟上传文件同名的文件,如果有的话需要在
需要在上传文件名后加1,比如新建文件、新建文件(1)、新建文件(2)等,请问这样该怎么写啊,求路过的亲们指教一下下了谢谢谢谢谢谢......
需要在上传文件名后加1,比如新建文件、新建文件(1)、新建文件(2)等 ,请问这样该怎么写啊 ,求路过的亲们指教一下下了 谢谢谢谢谢谢...
展开
3个回答
展开全部
String[] fileName =zipEntryName.split("\\."); // 文件名
outPath = (descDir+"/"+zipEntryName).replaceAll("\\*", "/");//存储路径
for(int i=1;i<999999999;i++){ //
File files = new File(outPath);
if(files.exists()){
outPath = (descDir+"/"+fileName[0]+"("+i+")."+fileName[1]).replaceAll("\\*", "/");
} else{
break;
}
}
//写入文件
InputStream in = zip.getInputStream(entry);
OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = new byte[1024];
int len;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close(); }
outPath = (descDir+"/"+zipEntryName).replaceAll("\\*", "/");//存储路径
for(int i=1;i<999999999;i++){ //
File files = new File(outPath);
if(files.exists()){
outPath = (descDir+"/"+fileName[0]+"("+i+")."+fileName[1]).replaceAll("\\*", "/");
} else{
break;
}
}
//写入文件
InputStream in = zip.getInputStream(entry);
OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = new byte[1024];
int len;
while((len=in.read(buf1))>0){
out.write(buf1,0,len);
}
in.close();
out.close(); }
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般的做法是 上传的时候 文件名会加上日期什么的 不会让他重复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样判断对服务器的压力是比较大的,比较好的做法是上传的时候给文件名加上时间后缀或者唯一码后缀。
追问
对的 可是我如果在文件后面直接加一个日期字符串做后缀的话传到文件夹的文件名还是原来不带后缀的,这样搞得下载附件都不行了,可能是我后缀加错地方了吧,应在在哪加呢,是刚刚上传的时候就加这个后缀么
对的 可是我如果在文件后面直接加一个日期字符串做后缀的话传到文件夹的文件名还是原来不带后缀的,这样搞得下载附件都不行了,可能是我后缀加错地方了吧,应在在哪加呢,是刚刚上传的时候就加这个后缀么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询