Java 检查文件是否已复制
我正在写一个复制文件的小程序。程序检查要复制的文件是否已复制到目标位置 为了验证是否存在相同的文件,我将比较以下两件事:Java 检查文件是否已复制,java,file-io,io,file-handling,Java,File Io,Io,File Handling,我正在写一个复制文件的小程序。程序检查要复制的文件是否已复制到目标位置 为了验证是否存在相同的文件,我将比较以下两件事: 文件的大小(源文件和目标文件的大小) 最后修改的时间戳 但是,我在Java中执行此操作时遇到以下问题: 当使用Java IO(输入/输出流)复制文件时,File.length不会返回相同的数字(存在1的差异) 使用Java IO复制文件时,复制文件的最后修改时间戳是当前日期/时间,而不是原始日期/时间 请建议。通常,您会计算原始文件的MD5和,并将其与目标文件的MD5和进行比
请建议。通常,您会计算原始文件的MD5和,并将其与目标文件的MD5和进行比较,如果它们相等,则可以继续 另一个简单的方法是复制文件,并在复制时为其添加后缀,在复制过程完成后,删除文件名上的后缀,这样您就只需检查文件是否存在
希望这有帮助 通常情况下,您会计算原始文件的MD5和,并将其与目标文件的MD5和进行比较,如果它们相等,则可以继续 另一个简单的方法是复制文件,并在复制时为其添加后缀,在复制过程完成后,删除文件名上的后缀,这样您就只需检查文件是否存在 希望这有帮助
File.setLastModified()
方法File.setLastModified()
方法您还需要复制属性,我知道Files类有一个复制属性选项:您还需要复制属性,我知道Files类有一个复制属性选项:要将一个文件复制到另一个文件,您可以使用任何类,但是我不明白为什么需要使用时间戳来检查文件是否已经被复制 您可以检查目标文件和源文件的内容,如果它们匹配,则复制该文件;如果不匹配,则不复制该文件
另一种方法是使用file类的lastModified方法。。。对于将一个文件复制到另一个文件,第一个似乎是更好的选择。您可以使用任何类,但我不理解为什么需要使用时间戳来检查文件是否已被复制 您可以检查目标文件和源文件的内容,如果它们匹配,则复制该文件;如果不匹配,则不复制该文件
另一种方法是使用file类的lastModified方法。。。第一个似乎是一个更好的选项为什么你不检查新的目的地中的文件是否存在?@纪尧姆-检查文件是否存在并不足以确定文件是否已经改变。考虑看Ant的复制任务的来源,因为它做了同样的事情。Guillaume这是必需的,因为源文件夹正在递增地添加文件。当我的程序复制时,它会检查相同的文件(名称、大小和日期)是否相同,否则会再次复制。啊,好吧,我明白了,我想你可以检查md5sum而不是大小!为什么不检查新目的地中的文件是否存在?@纪尧姆-检查文件是否存在并不足以确定文件是否已更改。请考虑Ant的复制任务的来源,因为它做了同样的事情。Guillaume这是必需的,因为源文件夹正在递增地添加文件。当我的程序复制时,它会检查相同的文件(名称、大小和日期)是否相同,否则会再次复制。啊,好吧,我明白了,我想你可以检查md5sum而不是大小!谢谢你的回答!这很有帮助。我的程序中有一个错误:)谢谢你的回答!这很有帮助。我的程序中有一个错误:)