【问题标题】:Network path of a file/directory using Java使用 Java 的文件/目录的网络路径
【发布时间】:2011-10-04 15:44:42
【问题描述】:

如何使用java获取windows pc上文件或目录的网络路径?通常我们可以在windows的共享文件夹属性中看到它。如下所示.....

【问题讨论】:

  • 得到它,给定什么 - 输入是什么?
  • @Ed-Staub 我要输入文件路径如“E:\”

标签: java windows file file-sharing file-properties


【解决方案1】:

使用Java,您可以在Runtime 类的exec 方法中传递net SHARE 命令,然后解析Process 类的输出流以获取您目录的相应网络路径。 net SHARE directory_name 命令的输出如下:

Share name        Share
Path              C:\Share
Remark
Maximum users     No limit
Users
Caching           Manual caching of documents
Permission        user, FULL

您需要从上述输出中获取 Path 键的值。以下是如何实现此目的的伪代码:

    Process process = Runtime.getRuntime().exec("net SHARE directory_name");
    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    StringWriter writer = new StringWriter();
    String line;

    while (null != (line = reader.readLine())) {
        writer.write(line);
    }

    System.out.println(writer.toString());

【讨论】:

  • 现在它运行没有错误,但是我应该把输入目录放在哪里?这在 Windows 上有效吗?我正在尝试 -- Runtime.getRuntime().exec("net SHARE E:\\");没有运气。感谢您的宝贵时间。
【解决方案2】:

要调用的 API 是 WNetEnumResource。您需要使用 JNI 来调用 Windows API。可以在http://public.m-plify.net/sourcecode/ 找到一个示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多