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

时间:2015-08-27 14:07:11

标签: java nio

在我的情况下,我需要将文件从本地文件夹复制到共享位置。

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:非法的char<>在索引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 at   sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77)at   sun.nio.fs.WindowsPath.parse(WindowsPath.java:94)at   sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)at   java.io.File.toPath(File.java:2234)at   com.zone.qv2.s2c.resultupload.TestClass.method(TestClass.java:31)at at   com.zone.qv2.s2c.resultupload.TestClass.main(TestClass.java:22)

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

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

1 个答案:

答案 0 :(得分:0)

您用于UNC路径的Java String值是:

  

\\\ 10.101.1.2 \\资源\\文件\\的Exbury \\ Tulips.jpg

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

Public Property BringLayerForwardCommand As New RelayCommand(Of Layer) _
  (Sub(p) BringLayerForward_Executed(p), _
  Function(p) p IsNot Nothing AndAlso _
              Me.Layers IsNot Nothing)

必须将每个slashe \\10.101.1.2\resources\Files\exbury\Tulips.jpg 转义为Java字符串中的\

生成的路径的Java String值应为:

  

\\\\ 10.101.1.2 \\资源\\文件\\的Exbury \\ Tulips.jpg

您错过了之前的\\

使用\也有效,无需转义;使用/的Java String值是:

  

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