Cara membawa file setelah tanggal tertentu saat menggunakan SSIS Foreach Loop Container

Saat ini membuat paket SSIS yang melewati folder dan mengembalikan file terbaru tergantung pada nama file. Saya telah melakukan ini dengan menggunakan wadah Foreach Loop

Dalam pengujiannya sudah berfungsi dengan baik, saya sudah menggunakan sekitar 20 file, semuanya berfungsi dengan baik. Namun ketika mencoba memasukkannya ke dalam lingkungan langsung, yang melewati sekitar 200+ file, itu gagal karena file lama sedikit berubah, sesuatu yang saya tidak tahu saat pertama kali membuat paket

Saya hanya perlu membawa file mulai tanggal 01/03/2020 dan seterusnya, tetapi tidak dapat menghapus file lama dari lokasinya

Apakah ada cara agar saya dapat mengubah paket agar hanya mengembalikan file mulai tanggal ini dan seterusnya? Dan jika demikian, bagaimana saya melakukan ini?

Salam sebelumnya


person Wil-Liam    schedule 01.09.2020    source sumber
comment
Apakah 20200301 ada dalam nama file?   -  person billinkc    schedule 01.09.2020
comment
Bukan hanya tanggal dalam SQL, dihapus untuk menghindari kebingungan lebih lanjut   -  person Wil-Liam    schedule 01.09.2020
comment
Saya tidak mengikuti - jika tanggal tidak ada dalam nama file dan format file telah berubah antara tanggal Epoch di sana, bagaimana Anda bisa mengetahui apa yang ada dalam cakupan pemrosesan versus di luar cakupan?   -  person billinkc    schedule 01.09.2020
comment
Tidak apa-apa, saya mengurutkannya pada akhirnya, saya membuat tabel untuk diperiksa dan secara manual memasukkan semua nama file di sana sehingga sekarang akan melewati semuanya ke file yang saya perlukan. Juga maaf, saya tidak membaca komentar Anda dengan benar, tanggalnya ada di nama file jadi misalnya nama file dalam format, 'Nama_File_2017-01-01', jadi saya tahu file mana yang harus saya lewati, tetapi tidak yakin bagaimana melakukannya itu, tetapi tabel untuk memeriksa apakah file telah dimuat atau belum berfungsi   -  person Wil-Liam    schedule 01.09.2020


Jawaban (1)


Anda dapat menggunakan properti file untuk mendapatkan file terbaru untuk diproses:

var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
             .OrderByDescending(f => f.LastWriteTime)
             .First();

Anda juga dapat menambahkan tempat di sana:

var myFile = directory.GetFiles()
             .Where(f=>f.LastWriteTime>=DateTime.Parse("1/3/2020"))
             .OrderByDescending(f => f.LastWriteTime)
             .First();
person KeithL    schedule 01.09.2020
comment
Terima kasih @KeithL, apa yang telah saya buat berfungsi untuk saat ini, namun ketika saya memiliki lebih banyak waktu saya akan mengujinya! Terima kasih telah memposting - person Wil-Liam; 10.09.2020