Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用java files.move在linux操作系统中移动文件_Java_Linux_File - Fatal编程技术网

无法使用java files.move在linux操作系统中移动文件

无法使用java files.move在linux操作系统中移动文件,java,linux,file,Java,Linux,File,我正在尝试使用java代码移动文件(在linux操作系统中),在尝试移动单个文件时会发生这种情况。在我看来,这个问题和 如果是这样的话,我们如何处理呢。它应该在linux级别还是java级别上完成 Files.move(src, dst, new CopyOption[] { StandardCopyOption.REPLACE_EXISTING }); 在该src中,文件夹位于projs/dd/output/TAR dest文件夹是config_files/billing/xml/work

我正在尝试使用java代码移动文件(在linux操作系统中),在尝试移动单个文件时会发生这种情况。在我看来,这个问题和

如果是这样的话,我们如何处理呢。它应该在linux级别还是java级别上完成

Files.move(src, dst, new CopyOption[] { StandardCopyOption.REPLACE_EXISTING });
在该src中,文件夹位于projs/dd/output/TAR
dest文件夹是config_files/billing/xml/workArea

即使目标中没有文件或文件夹,也会出现错误:

WARNING: FAILED_TO$Failed to get MHS user handler
java.nio.file.DirectoryNotEmptyException: 
config_files/billing/xml/workArea/GBF_2017030001_000007540_00001_0000000004
        at sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:491)
        at sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:262)
        at java.nio.file.Files.move(Files.java:1347)
我可以看到两个文件夹都位于不同的文件系统上

通过在linux操作系统上运行stat-c“%d”${Folder}“


这是导致异常的原因吗?

可能重复您不能像这样移动整个目录,除非可以通过简单的重命名来完成。单个
move
调用不支持将整个目录的内容从一个文件系统复制到另一个文件系统……我将编辑这个问题。由于它是movinf单文件,但错误是误导我们使用java nio Files.move来移动文件夹,它仅在同一文件系统中移动或为空时才起作用。在我们的例子中,文件系统是分开的。因此,我所做的是添加catch异常,并改为执行copy+delete。我使用了apache文件UTIL,因为它们已经有了递归复制和删除。可能的重复不能像这样移动整个目录,除非可以通过简单的重命名来完成。单个
move
调用不支持将整个目录的内容从一个文件系统复制到另一个文件系统……我将编辑这个问题。由于它是movinf单文件,但错误是误导我们使用java nio Files.move来移动文件夹,它仅在同一文件系统中移动或为空时才起作用。在我们的例子中,文件系统是分开的。因此,我所做的是添加catch异常,并改为执行copy+delete。我使用apache文件utils,因为它们已经具有递归复制和删除功能。