如何使用Java在Windows中获取短文件名?

奥斯蒙德·弗朗西斯(Osmund Francis)

如何使用Java在Windows中获取长文件名的短文件名?

我需要确定使用Java(tm)存储在Windows系统上的文件的短文件名。

奥斯蒙德·弗朗西斯(Osmund Francis)

自我回答

有相关的问题和相关的答案。但是,我发布了此解决方案,因为它使用Java(tm)代码而不需要外部库。欢迎使用其他版本的Java和/或Microsoft(R)Windows(tm)解决方案。

主要概念

主要概念在于通过运行时类从Java(tm)调用CMD:

在(“ [长文件名]”)中的%I使用cmd / c执行@echo%〜fsI

已在Windows 7系统上运行的Java SE 7上进行了测试(为简洁起见,已减少了代码)。

    public static String getMSDOSName(String fileName)
    throws IOException, InterruptedException {

    String path = getAbsolutePath(fileName);

    // changed "+ fileName.toUpperCase() +" to "path"
    Process process =
        Runtime.getRuntime().exec(
            "cmd /c for %I in (\"" + path + "\") do @echo %~fsI");

    process.waitFor();

    byte[] data = new byte[65536];
    int size = process.getInputStream().read(data);

    if (size <= 0)
        return null;

    return new String(data, 0, size).replaceAll("\\r\\n", "");
}

public static String getAbsolutePath(String fileName)
    throws IOException {
    File file = new File(fileName);
    String path = file.getAbsolutePath();

    if (file.exists() == false)
        file = new File(path);

    path = file.getCanonicalPath();

    if (file.isDirectory() && (path.endsWith(File.separator) == false))
        path += File.separator;

    return path;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中获取Windows短文件名?

来自分类Dev

Windows短文件名中〜后面的数字如何分配?

来自分类Dev

如何使用PowerShell中的文件内容获取文件名

来自分类Dev

Java中如何使用InputStream从目录中获取文件名

来自分类Dev

如何使用find命令获取cygwin中的文件名?

来自分类Dev

如何使用Java或在Windows平台上使用任何命令来获取最新下载的文件名?

来自分类Dev

如何使用Java代码从具有当前日期和时间的文件夹中获取文件名

来自分类Dev

如何在Java中缩短文件路径(获取规范路径)?

来自分类Dev

如何在Java中缩短文件路径(获取规范路径)?

来自分类Dev

如何在目录中使用文件名python中的最大数量获取文件名?

来自分类Dev

如何使用jQuery从输入类型文件中获取选定的文件名和文件路径

来自分类Dev

如何获取在Java程序中打开的完整文件名和文件路径?

来自分类Dev

使用Java下载文件时如何获取原始文件名

来自分类Dev

如何在Perl中从文件名获取文件句柄?

来自分类Dev

如何从Android中的文件路径获取文件名

来自分类Dev

如何从文件字段中获取文件名?

来自分类Dev

如何获取inputStream使用的文件的文件名?

来自分类Dev

使用可变文件名在VBA中获取文件标签

来自分类Dev

如何从图库中挑选的图像中获取文件名?

来自分类Dev

如何使用批处理文件替换Windows文件名中的单个字符?

来自分类Dev

如何使用批处理脚本删除Windows 7中许多文件的文件名的某些部分?

来自分类Dev

如何从Java中的字符串获取(拆分)文件名?

来自分类Dev

使用Java Servlet 3.0从特定输入获取文件名

来自分类Dev

如何使用7z获取存档中的文件名

来自分类Dev

如何在nodejs中使用fs从多个目录中获取文件名?

来自分类Dev

如何使用 microsoft-graph api 中的文件名获取 Excel-File id?

来自分类Dev

如何基于JavaScript中的事件对象获取文件名?

来自分类Dev

如何获取目录中的所有文件名?

来自分类Dev

如何从inotifywait事件中获取文件名?

Related 相关文章

  1. 1

    如何在python中获取Windows短文件名?

  2. 2

    Windows短文件名中〜后面的数字如何分配?

  3. 3

    如何使用PowerShell中的文件内容获取文件名

  4. 4

    Java中如何使用InputStream从目录中获取文件名

  5. 5

    如何使用find命令获取cygwin中的文件名?

  6. 6

    如何使用Java或在Windows平台上使用任何命令来获取最新下载的文件名?

  7. 7

    如何使用Java代码从具有当前日期和时间的文件夹中获取文件名

  8. 8

    如何在Java中缩短文件路径(获取规范路径)?

  9. 9

    如何在Java中缩短文件路径(获取规范路径)?

  10. 10

    如何在目录中使用文件名python中的最大数量获取文件名?

  11. 11

    如何使用jQuery从输入类型文件中获取选定的文件名和文件路径

  12. 12

    如何获取在Java程序中打开的完整文件名和文件路径?

  13. 13

    使用Java下载文件时如何获取原始文件名

  14. 14

    如何在Perl中从文件名获取文件句柄?

  15. 15

    如何从Android中的文件路径获取文件名

  16. 16

    如何从文件字段中获取文件名?

  17. 17

    如何获取inputStream使用的文件的文件名?

  18. 18

    使用可变文件名在VBA中获取文件标签

  19. 19

    如何从图库中挑选的图像中获取文件名?

  20. 20

    如何使用批处理文件替换Windows文件名中的单个字符?

  21. 21

    如何使用批处理脚本删除Windows 7中许多文件的文件名的某些部分?

  22. 22

    如何从Java中的字符串获取(拆分)文件名?

  23. 23

    使用Java Servlet 3.0从特定输入获取文件名

  24. 24

    如何使用7z获取存档中的文件名

  25. 25

    如何在nodejs中使用fs从多个目录中获取文件名?

  26. 26

    如何使用 microsoft-graph api 中的文件名获取 Excel-File id?

  27. 27

    如何基于JavaScript中的事件对象获取文件名?

  28. 28

    如何获取目录中的所有文件名?

  29. 29

    如何从inotifywait事件中获取文件名?

热门标签

归档