البرمجة

تحسين فلترة الملفات في برنامج C# لاستقبال ملفات CSV بناءً على بداية الاسم.

In your C# program, you currently have a filtering mechanism that ensures only files with the “.csv” extension are processed. However, due to recent changes in the FTP group, you now need to refine your filtering criteria to include only files that start with the specific string “CheckoutReportID=”.

To achieve this, you can modify your IsAllowedExtension method and the file processing loop as follows:

csharp
private static bool IsAllowedFile(string fileName) { // Check if the file has the ".csv" extension and starts with "CheckoutReportID=" return Path.GetExtension(fileName).ToLower() == ".csv" && fileName.StartsWith("CheckoutReportID=", StringComparison.OrdinalIgnoreCase); }

Now, update your file processing loop:

csharp
foreach (RemoteFileInfo fileInfo in directory.Files) { var fileExtension = Path.GetExtension(fileInfo.Name); // Check if the file meets the new filtering criteria if (string.IsNullOrEmpty(fileExtension) || !IsAllowedFile(fileInfo.Name)) continue; // Rest of your existing code for processing the allowed files if (!Directory.Exists(LocalPath)) Directory.CreateDirectory(LocalPath); var localFile = string.Format("{0}\\{1}", LocalPath.TrimEnd('\\'), fileInfo.Name); if (fileInfo.Name != ".." && !File.Exists(localFile)) { // Your file processing logic here } }

By incorporating the IsAllowedFile method, you ensure that only files with both the “.csv” extension and starting with “CheckoutReportID=” are processed, meeting your refined criteria. This adjustment enhances the filtering mechanism of your program, allowing you to capture only the desired files from the FTP group.

المزيد من المعلومات

لتحسين الأداء العام لبرنامجك وجعله أكثر دقة وفعالية في التصفية، يمكنك اعتبار بعض النقاط الإضافية. يتضمن ذلك استخدام تعبيرات النمط (Regex) لفحص أسماء الملفات وضمان أنها تبدأ بـ “CheckoutReportID=”. فيما يلي تحسينات إضافية لبرنامجك:

csharp
private static bool IsAllowedFile(string fileName) { // Use regular expression to check if the file name starts with "CheckoutReportID=" return Path.GetExtension(fileName).ToLower() == ".csv" && Regex.IsMatch(fileName, @"^CheckoutReportID=", RegexOptions.IgnoreCase); }

وثم قم بتحديث حلقة معالجة الملفات:

csharp
foreach (RemoteFileInfo fileInfo in directory.Files) { var fileExtension = Path.GetExtension(fileInfo.Name); // Check if the file meets the new filtering criteria if (string.IsNullOrEmpty(fileExtension) || !IsAllowedFile(fileInfo.Name)) continue; // Rest of your existing code for processing the allowed files if (!Directory.Exists(LocalPath)) Directory.CreateDirectory(LocalPath); var localFile = Path.Combine(LocalPath, fileInfo.Name); if (fileInfo.Name != ".." && !File.Exists(localFile)) { // Your file processing logic here } }

تستخدم Regex.IsMatch لفحص ما إذا كانت أسماء الملفات تبدأ بـ “CheckoutReportID=” بشكل صحيح. يُلاحظ أيضًا أنني قمت بتحسين استخدام Path.Combine لبناء مسار الملف المحلي بدلاً من استخدام string.Format، مما يجعل الكود أكثر قابلية للصيانة والفهم.

هذه التعديلات تعزز من دقة التصفية وتقلل من فرص الخطأ في استقبال الملفات غير المرغوب فيها.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر