gpt4 book ai didi

java - 如何使用刚刚映射到本地驱动器的网络文件夹?

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:10 24 4
gpt4 key购买 nike

关注this thread中的线索和其他人,我设置了一个代码块,在其中将网络驱动器映射到本地驱动器,然后列出其中的一些文件。

问题是:第一次调用中 FileUtils 方法的映射似乎尚不可用,只有当我等待并再次调用例程时,它才会发现映射的驱动器可供使用。

String path = "B:/Files/Somwething/SomethingElse/FinalDepth";
File newFile = new File("B:/Files/Something/SomethingElse");
if (!newFile.isDirectory()) {
flagNetwork = true;
p = Runtime.getRuntime().exec("net use B: " + networkSharedFolder);

if(p != null) {
Collection<File> files = FileUtils.listFiles(new File(path), arrExt, false);
Iterator<File> iterFiles = files.iterator();
while(iterFiles.hasNext()) {
File tmpFile = (File) iterFiles.next();
listResult.add(tmpFile);
}
LogServicio.doLog("[MyApplication, ContextListener] Drive B mapped to " + networkSharedFolder + ".", LogServicio.CErrorLvl);
} else {
throw new Exception("Error mapping network drive.");
}
}

我应该怎么做才能立即使用映射的驱动器(或保证我等到驱动器可用)?

最佳答案

Runtime.exec 启动进程运行,但并不真正等待它。您必须等待该过程完成(通过 p.waitFor() 之类的方法)才能知道驱动器已映射。

...
if (p != null) {
while (true) {
try { p.waitFor(); break; }
catch (InterruptedException ex) { /* don't care */ }
}

Collection<File> files ...

关于java - 如何使用刚刚映射到本地驱动器的网络文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com