TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
dc
NA
663
0
C# modify a foreach loop
Mar 10 2013 5:47 PM
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?
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);
}
}
}
Reply
Answers (
3
)
lambda expressions and event handlig
(Account Class)