繁体   English   中英

Java NIO 将文件移动到共享位置

[英]Java NIO move file to a shared location

就我而言,我需要将文件从本地文件夹复制到共享位置。

Files.copy(new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\Tulips.jpg").toPath(), new File("\\\10.101.1.2\\resources\\Files\\exbury\\Tulips.jpg").toPath(),
                    java.nio.file.StandardCopyOption.REPLACE_EXISTING);

java.nio.file.InvalidPathException: Illegal char <> at index 1: \\.101.1.2\\ZoneResources\\File Share\\burusoth\\Tulips.jpg at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)在 sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) 在 java.io.File.toPath(File.java:2234) 在 com.zone.qv2.s2c.resultupload.TestClass.method(TestClass.java :31) 在 com.zone.qv2.s2c.resultupload.TestClass.main(TestClass.java:22)

这意味着 NIO 不允许在此问题中所述的路径前使用slashes \\ 在我的情况下,我必须将共享位置指定为以slashes开头的 url 。 我怎样才能克服这个问题?

有没有办法将文件从本地位置复制到共享位置?

您用于 UNC 路径的 Java 字符串值是:

\\\\\\10.101.1.2\\\\resources\\\\Files\\\\exbury\\\\Tulips.jpg

UNC 路径通常采用以下形式:

\\10.101.1.2\resources\Files\exbury\Tulips.jpg  

每个斜杠\\必须在 Java 字符串中转义为\\\\

结果路径的 Java 字符串值应为:

\\\\\\\\10.101.1.2\\\\resources\\\\Files\\\\exbury\\\\Tulips.jpg

您缺少前面的\\字符。

使用/也有效,不需要转义; 使用/的 Java 字符串值是:

//10.101.1.2/resources/Files/exbury/Tulips.jpg

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM