java getFileName() 为什么只剩下文件名

FormFile file = uploadFile.getFile();
File f=new File(file.getFileName());
FileInputStream fin = new FileInputStream(f);
ib = new byte[(int)f.length()];
fin.read(ib);
fin.close();
老提示说,系统未找到文件。后来我查看了一下:file.getFileName();,发现他的值没有路径了。比如我上传:c:\abc.jpg,结果file.getFileName()=abc.jpg了。路径没了,这个如何改进呢?谢谢
首先非常感谢大家给我的留言回复。可能我的描述不是很清楚。其实我这个功能是用来将文件直接保存到sql数据库的images字段用的。所以,我把文件内容读到ib(byte[]类型)中,然后存储到我的持久层对象,保存到数据库中。就是File f=new File(file.getFileName());的getFileName(),不包含路径,结果导致系统如上提示。但是我在watch中,该属性值且有路径。 我这里的file只有如下属性:file.getContentType();file.getFileName();file.getClass();file.getFileData();file.getFileSize();file.getInputStream()

java io包中File类中并没有getFileName()方法,这里应该是指getName()方法,此方法仅返回文件名,并不会包含路径。如果需要完整路径+文件名,应该使用getPath()取得路径后再组合使用getName(),拼出一个完整路径+文件名的字符串。

==File类中常用方法如下,下文中file是File类的一个实例==

取得文件名称的方法: file.getName()
取得文件路径的方法: file.getPath()
判断文件是否绝对路径: file.isAbsolute()
取得文件的根目录: file.getParent()
判断文件是否存在: file.exists()
判断是否是目录: file.isDirectory()
判断是否是文件: file.isFile()
判断是否是隐藏文件: file.isHidden()
判断是否可读: file.canRead()
判断是否可写: file.canWrite()
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-11
file.getFileName()看名字就知道是获取该文件的名字。你这个类我没看见过。不过呢,file里面肯定有个什么什么path的方法。选那个就行。
比如看我的File file = new File(s);
file.getPath();本回答被提问者和网友采纳
第2个回答  2009-07-23
你这用的不是struts的上传吗,怎么还这么写,这样是完全错误的!!!
文件路径根本用不到,你用路径的话就变成读取服务器本地文件了,客户端根本上传不了,因为执行的时候是在服务器端执行的。
正确的写法是下面这样:
FormFile file = uploadFile.getFile();
byte[] fileData = file .getFileData();
FileUtil.saveFileTODir(fileData, filePath);//filePath是自己定义的服务器端存放路径
第3个回答  2009-07-23
直接用getPath(),得到就是文件的完整路径,用getName()得到的是文件夹或者文件的名字,用getAbsolutePath()得到的是这个文件所在的路径(不包含文件夹和文件名).
第4个回答  2009-07-23
f.getAbsolutePath()+f.getFileName();

上面的结果是: c:\abc.jpg

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网