windows下获取文件上传路径报错:java.io.FileNotFoundException: (文件名、目录名或卷标语法不正确。)

小编今天在java编程中使用fastdfs实现文件上传功能的时候,获取windows文件路径时报错:

java.io.FileNotFoundException: (文件名、目录名或卷标语法不正确。) 


原因分析:

出现次错误的原因主要是在windows系统下创建文件需要遵循其文件名的规则。导致创建文件失败,从而提示filenotfound异常,文件未找到
Windows 中文件夹命名规则是: 
① 文件名或文件夹名可以由1~256个西文字符或128个汉字(包括空格)组成,不能多于256个字符。 
② 文件名可以有扩展名,也可以没有。有些情况下系统会为文件自动添加扩展名。一般情况下,文件名与扩展名中间用符号“.”分隔。 
③ 文件名和文件夹名可以由字母、数字、汉字或~、!、@、#、$、%、^、&、( )、_、-、{}、’等组合而成。 
④ 可以有空格,可以有多于一个的圆点。 
⑤ 文件名或文件夹名中不能出现以下字符:\、/、:、*、?、"、<、>、| 。 
⑥ 不区分英文字母大小写。


所以需要将Windows文件路径转换为java中可识别的文件路径。


解决方案:

在Windows中的文件路径格式为 D:\tfs\235396.jpg
而在Java中的文件路径格式为 D:/tfs/235396.jpg
在java中使用前者则会报错,所以需要先将Windows中的文件路径转换为java中可识别的路径。
作如下处理:

String str="D:\\tfs\\235396.jpg";
String location=str.replace("\\\\", "/");
String[] strings=storageClient.upload_file(location, "jpg", null);


这样location的值为 D:/tfs/235396.jpg


你可能感兴趣的:(windows下获取文件上传路径报错:java.io.FileNotFoundException: (文件名、目录名或卷标语法不正确。))