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