相关疑难解决方法(0)

Java - 如何确定文件名是否有效?

在我的Java应用程序中,我将文件重命名为String参数中提供的文件名.有一种方法

boolean OKtoRename(String oldName, String newName)
Run Code Online (Sandbox Code Playgroud)

它基本上检查newName是否已被其他文件占用,因为我不想埋没现有文件.

现在我想到,newName String可能不会表示有效的文件名.所以我想把这个检查添加到方法中:

if (new File(newName).isFile()) { 
    return false; 
}
Run Code Online (Sandbox Code Playgroud)

这显然不是正确的方法,因为在大多数情况下newFile尚不存在,因此虽然它是 OKtoRename,但该函数返回false.

我在想,有没有一种方法(我知道有没有针对java.io.File的对象)canExist()吗?或者,我将不得不诉诸正则表达式来确保NEWFILE String不包含无效字符(如?,*," :)?我不知道是否有可能是某个地方隐藏在JDK的函数,将一个字符串告诉我可能表示有效的文件名.

java file

50
推荐指数
4
解决办法
8万
查看次数

测试一个方法,如果它在不调用它的情况下抛出异常

如何在不调用的情况下测试给定方法是否会抛出异常(取决于传递的对象)?

例如:

public static boolean isAllowed(SomeObject obj)
{
    try
    {
        myMethod(obj);
        return true;
    }
    catch(Exception ex)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是上面的方法会执行MyMethod(),我怎么能在java中实现这个呢?

编辑:

实际上,我想这样做来验证文件名.请参阅:在Windows上验证文件名

java exception

3
推荐指数
1
解决办法
1万
查看次数

验证Windows文件名

如何确定给定字符串是否是有效的Windows文件名?我正在考虑一些函数,我可以给一个字符串,并返回一个布尔值.它应该检查不允许的字符(<>:"/\|?*)和保留字(CON,PRN等等).

isValidWindowsFilename('readme.txt'); // true
isValidWindowsFilename('foo/bar'); // false
isValidWindowsFilename('CON'); // false
Run Code Online (Sandbox Code Playgroud)

我找到了一个MSDN参考,准确描述了什么是有效的:http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v = vs.85).aspx

我也为Java找到了同样的问题,答案可以满足我的需要,除了它是Java而不是PHP:在Windows上验证文件名

php regex windows filenames

3
推荐指数
1
解决办法
1662
查看次数

标签 统计

java ×2

exception ×1

file ×1

filenames ×1

php ×1

regex ×1

windows ×1