gpt4 book ai didi

java - 使用 Apache Commons VFS2 检查文件是否存在

转载 作者:行者123 更新时间:2023-12-01 22:16:40 24 4
gpt4 key购买 nike

我想问是否有一种方法可以仅使用 Apache Commons 检查文件是否已存在于文件夹中。

我有上传到 SFTP 文件夹的方法,但只要该方法运行,它就会覆盖当前文件。该方法设置为每 5 分钟运行一次。我需要一个代码来创建 if 语句,该语句检查文件是否不在 SFTP 位置,如果没有,则执行我的复制方法,如果存在文件,则跳过它。

我的复制方法如下所示

private void copyFileSFTP(File model, String hour) throws IOException {
StandardFileSystemManager manager = new StandardFileSystemManager();
String dest = String.format("%s/%s/model/%s", destinationPath, hour,
model.getName());

remoteDirectory = String.format("%s/%s/model/", destinationPath, hour);

try {
if (!model.exists())
LOG.error("Error. Local file not found");

// Initializes the file manager
manager.init();

// Setup our SFTP configuration
FileSystemOptions opts = new FileSystemOptions();
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
opts, "no");
SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts,
false);
SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000);

// Create the SFTP URI using the host name, userid, password, remote
// path and file name
String sftpUri = "sftp://" + userId + ":" + password + "@"
+ serverAddress + "/" + remoteDirectory + model.getName();

**HERE I NEED THE CHECK IF THE MODEL EXISTS ALREADY ON SFTP**

// Create local file object
FileObject localFile = manager.resolveFile(model.getAbsolutePath());

// Create remote file object
FileObject remoteFile = manager.resolveFile(sftpUri, opts);

// Copy local file to sftp server
remoteFile.copyFrom(localFile, Selectors.SELECT_SELF);
LOG.info("File upload successful");
LOG.info("New file has been created.");
LOG.info(dest);

} catch (Exception ex) {
LOG.error(ex);
handleBadPath(model, hour);

} finally {
manager.close();
}

}

感谢您的帮助。

最佳答案

关于java - 使用 Apache Commons VFS2 检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30845352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com