当前位置: 首页 > 知识库问答 >
问题:

IOException:没有更多的文件-(当将pdf复制到另一个位置时)

戚建白
2023-03-14

我继承了这段代码,它包含一个函数,该函数将.pdf文件从一个位置复制到另一个位置,在这个过程中创建新文件夹(由哈希值命名),并将新路径保存到一个数据库,BI工具稍后使用该数据库通过API访问该文件。

在我们将文件服务器移动到一个新主机,并四次检查权限和路径引用之后,在将文件复制到代码中的新位置时,我们将收到这个java.io.IoException。复制失败,无法在适用的地方创建文件夹,并且无法通过API访问文件。

import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;

public boolean pushFile(File file, String newFileName)
{
    File newFile = new File(SAN_LOCATION + "\\" + newFileName.subSequence(0, 2) + "\\" + newFileName);

    try
    {

        System.out.print("Copying " + file.getName() + " to: " + newFile.getAbsolutePath());
        FileUtils.copyFile(file, newFile);
        System.out.println(" - Good file transfer");

    } catch (IOException ex)
    {
        System.out.println(" - Bad file transfer");
        Logger.getLogger(Utilities.class.getName()).log(Level.SEVERE, null, ex);
        return false;
    }
    return true;
}
Copying ARC FERM 2019-06-18 07-35-58_AM0000006.pdf to: \\tf-fs-1\arcstor\fc\fc3533e07547850176b671730ddccfcc - Bad file transfer
java : Jun 18, 2019 11:01:27 AM datatosql.PushToSQL pushFile
At C:\arc\ch_agilent_hplc.ps1:2 char:1
+ java -jar ".\Agilent.jar" CH HPLC "$file" 2>&1 | Out-File C:\arc\Logs\Agilent\ch ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Jun 18, 2019 11...hToSQL pushFile:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

SEVERE: null
java.io.IOException: There are no more files
    at java.io.WinNTFileSystem.canonicalize0(Native Method)
    at java.io.WinNTFileSystem.canonicalize(Unknown Source)
    at java.io.File.getCanonicalPath(Unknown Source)
    at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1076)
    at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1040)
    at datatosql.PushToSQL.pushFile(PushToSQL.java:763)
    at datatosql.PushToSQL.push(PushToSQL.java:508)
    at agilent.Agilent.main(Agilent.java:503)
    enter code here

共有1个答案

廖琨
2023-03-14

我也面临着类似的问题。在我的例子中,我在循环中使用fileutils.copyfile(file,newFile)。在成功复制258次后,我会得到那个错误。我修改了代码,改为使用文件。copy(sourcePath,destPath),这样问题就解决了。

 类似资料:
  • 问题内容: 我想将文件从Java中的一个位置复制到另一位置。做这个的最好方式是什么? 这是我到目前为止的内容: 这不会复制文件,执行此操作的最佳方法是什么? 问题答案: 您可以使用此(或任何变体): 另外,我建议您使用或代替使其兼容于多个操作系统. 由于您不确定如何临时存储文件,因此请查看: 要将a 个文件移动到单个目录中:

  • 问题内容: 我想为我们的多TB文件服务器的结构创建一个克隆。我知道cp –parents可以移动文件及其父结构,但是有什么办法可以完整地复制目录结构? 我想复制到Linux系统,并且文件服务器安装在CIFS上。 问题答案: 您可以执行以下操作: 创建目录列表,然后 在目标上创建目录。

  • 问题内容: 我有两个Java.io.File对象file1和file2。我想将内容从file1复制到file2。有没有一种标准的方法可以执行此操作,而无需创建必须读取文件1并写入文件2的方法 问题答案: 不,没有内置方法可以做到这一点。与您要完成的工作最接近的是from 的方法,如下所示: 并且不要忘记处理异常并在一个块中关闭所有内容。

  • //我得到的错误是java。尼奥。文件FileAlreadyExistsException所以据我所知,它试图将文件保存到确切的位置,而不是保存在文件中,如果我将目标地址改为“垃圾/垃圾”,我需要以这种方式保存几个文本文件。它将在那里保存一个名为垃圾的文件。txt。但在for-each的下一个循环中,它会抛出一个“已经存在”的异常。。。 有人能解释一下我如何从src文件夹将所有txt文件保存到该文

  • 如何将一个文本文件复制到另一个文本文件中?我试过这个: 这只是在中留下以下值:。 我做错了什么?