I have a question about how to modify the C# 2008 desktop foreach (String RFile in RFiles) block of code and/or the code that is surrounding this block of code. The code I am referring
to is listed below. Originally the code was setup to select files in a specific file directory. Now the requirements have changed where I need to loop through
4 subfoler directories that are at the same folder level. The 4 folder levels will be: 1. C:\customer\Mon_year\Cancel, 2. C:\customer\Mon_year\ED, 3. C:\customer\Mon_year\UI, and
4. C:\customer\Mon_year\UI.
Right now these are the only folders that will be setup at this level in the directory structure. However I can see how there can potentially be other directories created at this
level in the future.
I would like to be able to resue the foreach (String RFile in RFiles) block without repeating the 4 times.
Thus can you show me how to modify this code and/or tell me how I can change this code?
to is listed below. Originally the code was setup to select files in a specific file directory. Now the requirements have changed where I need to loop through
4 subfoler directories that are at the same folder level. The 4 folder levels will be: 1. C:\customer\Mon_year\Cancel, 2. C:\customer\Mon_year\ED, 3. C:\customer\Mon_year\UI, and
4. C:\customer\Mon_year\UI.
Right now these are the only folders that will be setup at this level in the directory structure. However I can see how there can potentially be other directories created at this
level in the future.
I would like to be able to resue the foreach (String RFile in RFiles) block without repeating the 4 times.
Thus can you show me how to modify this code and/or tell me how I can change this code?
public String addNewPKG() { { try { String packageId = ""; int intReviewFileCount = 0; string Format_year = DateTime.Now.AddMonths(-1).ToString("yyyy"); string strMonth = DateTime.Now.AddMonths(-1).ToString("MMMM").ToUpper(); string Format_Date = "_" + strMonth.Substring(0, 3) + "_" + Format_year; String filesaveLocation = null; filesaveLocation = Path.Combine(ConfigurationSettings.AppSettings["tLocation"], Format_Date); string strCancel = "Cancel"; string strED = "ED"; string strUI = "UI"; string strRCS = "RCS"; //string strsubfilesaveLocation = Path.Combine(filesaveLocation,strCancel); //string strsubfilesaveLocation = Path.Combine(filesaveLocation, strED); //string strsubfilesaveLocation = Path.Combine(filesaveLocation, strUI); string strsubfilesaveLocation = Path.Combine(filesaveLocation, strRCS); if (!Directory.Exists(strsubfilesaveLocation)) { System.IO.Directory.CreateDirectory(strsubfilesaveLocation); logging.Error("The location " + strsubfilesaveLocation + " does not exist for documents. "); return packageId; } else { string[] RVWFiles = (from path in Directory.GetFiles(strsubfilesaveLocation) let name = Path.GetFileName(path) where name.EndsWith(".pdf") || name.EndsWith(".xlsx") || name.EndsWith(".xls") select path).ToArray(); if (RVWFiles.Length == 0) { logging.Info("packageId: " + packageId + " the location " + strsubfilesaveLocation + " does not contain any documents. "); return packageId; } foreach (String RFile in RFiles) { string orgnizationName = ""; string contactName = ""; string fileNameWithExtension = Path.GetFileName(RFile); string fileName = Path.GetFileNameWithoutExtension(RFile); string Original_location = filesaveLocation; string[] names = fileName.Split('_'); orgnizationName = names[0].TrimEnd(); contactName = names[1].TrimStart(); string strOrgnizationName = orgnizationName; string[] items = contactName.TrimEnd().Split(' '); string surname = items[items.Length - 1]; --here does the processing that is required-- return null; } //closing bracket for foreach (String RFile in RFiles) } catch (Exception e) { logging.Error("Error Processing --> " + e.Message); logging.Error("************* Stack Trace *******************"); logging.Error(e.StackTrace); throw new Exception(e.Message); } } }
Last edited by a moderator: