-1

我必须将文件从一台 Windows 机器复制到另一台机器(目标是虚拟机)。当我以普通用户身份执行它时,文件被成功复制并且: File f = new File(source); System.out.println(f.exists());

输出真。
当我以管理员身份打开 cmd 并运行相同的程序时,这段代码返回 false`。而在尝试的时候

java.nio.files.Files.copy(source, target, options);

我得到以下异常java.nio.file.NoSuchFileException......在这种情况下,当文件所在的远程计算机上的文件夹映射到驱动器时​​,例如

source = "N:\\..."

有人知道是什么原因吗?(或恭敬地有解决方案)?

4

2 回答 2

2

您的问题与java完全无关,它与windows如何管理不同权限级别的映射网络驱动器有关。

准确地说:切换到更高的用户级别时,网络驱动器映射会丢失。

为了修复它,您必须为网络驱动器启用链接连接。当您运行 Windows 7 时:在注册表编辑器中,创建一个 DWORD,然后EnableLinkedConnectionsHKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System.

可以在此处找到详细说明:http: //www.winability.com/how-to-make-elevated-programs-recognize-network-drives/

于 2015-12-01T18:19:46.547 回答
0

1不一样的系统

2 不同的驱动器

3 不完全相同的路径

4 你不会从同一条路径启动

一种修复方法:在读取文件之前,写入另一个文件,然后检查它在文件系统中的写入位置

于 2015-12-01T18:15:26.560 回答