Java 将本地地址更改为UNC格式,地址从共享文件夹开始

Java 将本地地址更改为UNC格式,地址从共享文件夹开始,java,swing,jakarta-ee,Java,Swing,Jakarta Ee,我需要将我的本地地址更改为UNC格式,地址的存储格式如下: 计算机名或服务器名/共享文件夹名和关联的路径/文件名 例如,如果本地计算机上的地址为 而common是共享文件夹,那么所需的地址应该是 ashish:\common\dao\filename.xls 其中ashish是我的计算机名 Java是否提供了可以实现这种转换的API或类,或者是否有某种方法可以实现这种转换 通过网络共享,我得到了所有共享文件夹的名称。我不能只获取共享名称文件夹吗 我的代码是: String line = nu

我需要将我的本地地址更改为UNC格式,地址的存储格式如下:

计算机名或服务器名/共享文件夹名和关联的路径/文件名

例如,如果本地计算机上的地址为

common
共享文件夹,那么所需的地址应该是

ashish:\common\dao\filename.xls
其中
ashish
是我的计算机名

Java是否提供了可以实现这种转换的API或类,或者是否有某种方法可以实现这种转换


通过网络共享,我得到了所有共享文件夹的名称。我不能只获取共享名称文件夹吗

我的代码是:

String line = null;
String[] commands = new String[] { "cmd", "/C", "net share" };

Process child = Runtime.getRuntime().exec(commands);
InputStream ins = child.getInputStream();
BufferedReader buffReader = new BufferedReader(new InputStreamReader(ins));

while (!(line = buffReader.readLine()).trim().equals("The command completed successfully."))    
{
    System.out.println(line);
}

是否有某种方法可以仅获取共享文件夹的详细信息而不获取默认文件夹的详细信息?

请注意,单个文件可能有多个UNC路径。比如说,

D:\Workspace\Task Management System\TBMS\src\com\common\dao\fileName.xls
可以通过
\\ashish\common\dao\fileName.xls

因为

D:\Workspace\Task Management System\TBMS\src\com\common
共享为
common

在名为ashish的机器上。如果还有一份

D:\Workspace\Task Management System\TBMS\src\com\common\dao
as
dao

然后还可以通过
\\ashish\dao\filename.xls

我不知道你是否知道这部分的根源是什么。如果不这样做,则必须从叶文件夹开始,遍历查找第一个共享的叶文件夹

接下来,如何确定文件夹是否共享?我不知道有哪个库可以让您管理Java中共享的windows,但可能有一个。即使没有,也应该很容易解析
net share
的输出,它在Windows XP上提供如下输出:

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share                     
ADMIN$       C:\WINDOWS                      Remote Admin                      
IPC$                                         Remote IPC                        
tmp          c:\tmp       
您需要忽略特殊共享,如
C$

最后,您需要识别计算机名。您可以使用
System.getenv(“COMPUTERNAME”)

所以伪代码是:

  • 从\\(
    \\
    开始)
  • 附加计算机名(
    \\ashish
  • 追加\(
    \\ashish\
  • 追加文件最近父级的共享名(
    \\ashish\common
  • 附加完整文件名的其余部分(
    \\ashish\common\dao\filename.xls

  • ashish:\common\dao\filename.xls不是UNC格式,是吗?它是lyk\\ashish\common\dao\filename.xls UNC,我们有\\server\share\file\u路径
    Share name   Resource                        Remark
    
    -------------------------------------------------------------------------------
    C$           C:\                             Default share                     
    ADMIN$       C:\WINDOWS                      Remote Admin                      
    IPC$                                         Remote IPC                        
    tmp          c:\tmp