File.getCanonicalPath无法处理NTFS流?

时间:2017-10-10 10:20:53

标签: java io ntfs

我使用简单的Java程序来获取文件的规范路径,

import java.io.*;

public class Foo {
    public static void main (String[] args)
    {
        try {
            File file = new File(args[0]);
            System.out.println(file.getCanonicalPath());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

当谈到NTFS流时,它会引发异常

C:\>java Foo c:\windows\system32\calc.exe::$DATA
java.io.IOException: The filename, directory name, or volume label syntax is inc
orrect
        at java.io.WinNTFileSystem.canonicalize0(Native Method)
        at java.io.WinNTFileSystem.canonicalize(Unknown Source)
        at java.io.File.getCanonicalPath(Unknown Source)
        at Foo.main(Foo.java:8)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果文件名包含 * ?您将获得java.io.IOException:无效的参数 | :您将获得java.io.IOException:文件名,目录名或卷标语法不正确