簡體   English   中英

如何使用talend檢查從ftp站點檢索的文件是否存在於java的本地文件夾中?

[英]How to check if a file retrieved from the ftp site exists in the local folder in java using talend?

我正在使用 FtpGet 從 ftp 中提取或檢索文件並加載到數據庫中,然后我將其存儲在本地文件夾中。

所以在我使用 tfilecopy 到本地文件夾之前,我想執行一個檢查,其中如果本地文件夾中已經存在該文件,請跳過或忽略后續步驟,如果它們不存在,則只將 (tfilecopy) 寫入本地文件夾。

所以基本上我想根據我正在使用的文件遍歷本地文件夾中的文件列表

GlobalMap 變量:動態檢查該文件是否存在於該文件夾中所有其他文件的列表中並執行操作。

我已經在talend中創建了這個,我可以檢查數據庫以查看文件是否存在,或者直接檢查有ftp文件副本的本地文件夾(如果相同的文件已經存在)跳過該過程。

只有當它不存在時才寫入本地文件夾。

通過編寫 tjava 代碼在內部文件夾(盡管也可能有子文件夾)中掃描它是最好的方法

或者使用數據庫腳本進行查詢,並且僅當表中不存在文件名時,將該文件復制到目標文件夾並寫入數據庫表。

塔倫

所以主要是我遍歷 tfilelist3 中的當前文件,並檢查它們是否存在於 tfilelist2 組件中,僅當檢索到的文件不存在於 tfilelist_2 中時才使用 TJAVA 和 tfilecopy

賈瓦:

String  path =((String)globalMap.get("tFileList_2_CURRENT_FILEDIRECTORY"));

 System.out.println("PRINTING PATH in string: " +path);
 
 Path filepath=Paths.get(path);

  System.out.println("PRINTING PATH in PATH: " +filepath);
 
String  fileName =((String)globalMap.get("tFileList_3_CURRENT_FILE"));

 System.out.println("PRINTING FILENAME IN STRING: " +fileName); 
 
 File file = new File(fileName);
 System.out.println("File is " +file);
 

//File f = new File(path);
if(file.exists()) 
{
 System.out.println("Filename: "+file); //+ path.toString());
             System.out.println("Exist in location!");
 //  System.out.println("File EXIST " +f);
} else 
{
      System.out.println("Filename: "+file); //+ path.toString());
            System.out.println("Does not exist in location!");
}

我有點讓它變得有點復雜,現在我迷路了,如果有人能修復剩余的部分並使其工作,那就太好了,我現在似乎無法找到穿越這個迷宮的方法! 我嘗試了不同的版本,但似乎都沒有產生我正在尋找的結果?

所以 file.exists() 只檢查當前目錄中的特定文件,如果我需要檢查不同的目錄怎么辦,我如何傳遞參數?

方法二: 在復制到目的地/目標之前檢查文件是否存在於不同的文件夾中

您是否檢查了 tFileExist 組件? 似乎它可能很有用(唯一的參數是您要檢查的文件夾+文件名)。

您可以創建一個 java 例程,例如:

findFile("fileName","FilePath")

通過傳遞fileNamefilePath作為參數為每個文件調用例程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM