Windows上的Java:阻止' /'用作分隔符的文件名中的斜杠
我必须根据提供给我的字符串创建一个文件。
对于此示例,假设文件名为“My file w / stuff.txt”。
当Java使用创建文件时
File file = new File("My file w/ stuff.txt")
即使默认的窗口分隔符是''
,它也假定'/'
斜杠是文件分隔符。因此,未来对file.getName()
的调用将返回" stuff.txt"
。这会导致我的程序出现问题。
有什么方法可以防止这种行为吗?
没有找到相关结果
已邀请:
4 个回复
纫合峭
对象中的路径名组件中嵌入“/”,Windows在某些时候也可能将其视为路径分隔符。 所以你最好的选择是: 让Windows像往常一样对待'/';即让它将字符视为路径名分隔符。 如上所述,但是向用户发出关于'/'的警告。 检查'/'和''字符,并拒绝两个文件名(即路径名组件)不能包含路径名分隔符。 (最好的最好取决于您的应用程序的详细信息;例如,您是否可以向输入伪造文件名的人报告问题。) 如果你试图将'/'与''区别对待,那么你就有可能产生比你解决的问题更多的问题;例如如果您的应用程序需要编写脚本。如果你静静地剥离一个或两个角色(或将它们变成别的东西),你就有可能产生更多的问题;例如意外的路径名冲突。 (我最初建议在带有%-escaped'/'字符的“file:”URL上使用
构造函数。但即使它在Java端工作,它也无法在Windows端工作。)
僻朵庙惩竣
味芯憨
厦惫