【问题标题】:java : Copying file from one machine to another throws java.nio.file.NoSuchFileExceptionjava :将文件从一台机器复制到另一台机器会引发 java.nio.file.NoSuchFileException
【发布时间】:2015-12-01 18:02:02
【问题描述】:

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

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

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

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

source = "N:\\..."

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

【问题讨论】:

  • 请修正你的语法并格式化你的代码。
  • 粘贴完整代码。一方面,您不能将 File 参数传递给 Files.copy()

标签: java java.nio.file nosuchfileexception


【解决方案1】:

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

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

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

详细解释可以看这里:http://www.winability.com/how-to-make-elevated-programs-recognize-network-drives/

【讨论】:

    【解决方案2】:

    1 不是同一个系统

    2个不同的驱动器

    3 条路径不完全相同

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多