Recursive Reading : Corrected

B

Benjamin Vigneaux

The Folders looked all wrong with the formatting I gave thm... it could
cause confusion..so i'm reposting with a different fomat:
===================================

Hey everyone!

Basicaly what i'm doing is showing MessageBoxes with the contents of a
folder tree...

Example:

rootFolder (Folder1 "(" Folder2 *(* Folder3( F3File1, F3File2)
F2File1,F2File2* )* F1File1,F1File2 ")" RFFile1, RFFile2 )

It might take you a while but you'll probably see how the folder tree is
structured... the " * characters with the brackets are just to tell the
difference between them, reference.

RF"name" or F#"name" is to tell you in wich folder a file is, it's just for
reference, RFFile1,for example, is in the Root Folder, and F2File2 is in
Folder2

My problem is:

With the folowing code I can only get to the contents of
Folder2 which are Folder3, F2File1 etc etc...
but I can't get to the contents within Folder3.... could anyone suggest me
what to do? (I know it's quite simple, but i've been so many hours looking
at it that I can't see it!


protected void MessContents(DirectoryInfo root)
{

foreach (DirectoryInfo NextFolder in root.GetDirectories())
{
MessageBox.Show(NextFolder.Name);

foreach (FileInfo NextFile in root.GetFiles())
{
MessageBox.Show(NextFile.Name);
}

MessContents(NextFolder);
}


}

Thnx in advance!

Benjamin Vigneaux,
 
G

Göran Andersson

Benjamin said:
The Folders looked all wrong with the formatting I gave thm... it could
cause confusion..so i'm reposting with a different fomat:
===================================

Hey everyone!

Basicaly what i'm doing is showing MessageBoxes with the contents of a
folder tree...

Example:

rootFolder (Folder1 "(" Folder2 *(* Folder3( F3File1, F3File2)
F2File1,F2File2* )* F1File1,F1File2 ")" RFFile1, RFFile2 )

It might take you a while but you'll probably see how the folder tree is
structured... the " * characters with the brackets are just to tell the
difference between them, reference.

RF"name" or F#"name" is to tell you in wich folder a file is, it's just for
reference, RFFile1,for example, is in the Root Folder, and F2File2 is in
Folder2

My problem is:

With the folowing code I can only get to the contents of
Folder2 which are Folder3, F2File1 etc etc...
but I can't get to the contents within Folder3.... could anyone suggest me
what to do? (I know it's quite simple, but i've been so many hours looking
at it that I can't see it!


protected void MessContents(DirectoryInfo root)
{

foreach (DirectoryInfo NextFolder in root.GetDirectories())
{
MessageBox.Show(NextFolder.Name);

foreach (FileInfo NextFile in root.GetFiles())
{
MessageBox.Show(NextFile.Name);
}

MessContents(NextFolder);
}


}

Thnx in advance!

Benjamin Vigneaux,

I don't see anything wrong with the code.

Why do you think that you can't get the contents of Folder3? I.E. what
happens when you try?

Have you verified that Folder3 actually contains anything?
 
P

parez

The Folders looked all wrong with the formatting I gave thm... it could
cause confusion..so i'm reposting with a different fomat:
===================================

Hey everyone!

Basicaly what i'm doing is showing MessageBoxes with the contents of a
folder tree...

Example:

rootFolder (Folder1 "(" Folder2 *(* Folder3( F3File1, F3File2)
F2File1,F2File2* )* F1File1,F1File2 ")" RFFile1, RFFile2 )

It might take you a while but you'll probably see how the folder tree is
structured... the " * characters with the brackets are just to tell the
difference between them, reference.

RF"name" or F#"name" is to tell you in wich folder a file is, it's just for
reference, RFFile1,for example, is in the Root Folder, and F2File2 is in
Folder2

My problem is:

With the folowing code I can only get to the contents of
Folder2 which are Folder3, F2File1 etc etc...
but I can't get to the contents within Folder3.... could anyone suggest me
what to do? (I know it's quite simple, but i've been so many hours looking
at it that I can't see it!

protected void MessContents(DirectoryInfo root)
{

foreach (DirectoryInfo NextFolder in root.GetDirectories())
{
MessageBox.Show(NextFolder.Name);

foreach (FileInfo NextFile in root.GetFiles())
{
MessageBox.Show(NextFile.Name);
}

MessContents(NextFolder);
}

}

Thnx in advance!

Benjamin Vigneaux,


Not sure but

protected void MessContents(DirectoryInfo root)
{

// when root =Folder3 , There are are not directories

foreach (DirectoryInfo NextFolder in
root.GetDirectories())
{
MessageBox.Show(NextFolder.Name);

foreach (FileInfo NextFile in root.GetFiles())
{
MessageBox.Show(NextFile.Name);
}

MessContents(NextFolder);
}

}



I think this could help. not tested it though

foreach (FileInfo fi in di.GetFiles())
{
if ((fi.Attributes & FileAttributes.Directory) !=
FileAttributes.Directory)
{
//is file
}
else if ((fi.Attributes & FileAttributes.Directory) ==
FileAttributes.Directory)
{
//recurse
}
}
 
G

Göran Andersson

parez said:
// when root =Folder3 , There are are not directories

Good point. That is the problem.

However, the simple solution is to just move the file loop outside the
folder loop:

protected void MessContents(DirectoryInfo root) {
foreach (FileInfo NextFile in root.GetFiles()) {
MessageBox.Show(NextFile.Name);
}
foreach (DirectoryInfo NextFolder in root.GetDirectories()) {
MessageBox.Show(NextFolder.Name);
MessContents(NextFolder);
}
}
 
P

parez

Good point. That is the problem.

However, the simple solution is to just move the file loop outside the
folder loop:

protected void MessContents(DirectoryInfo root) {
foreach (FileInfo NextFile in root.GetFiles()) {
MessageBox.Show(NextFile.Name);
}
foreach (DirectoryInfo NextFolder in root.GetDirectories()) {
MessageBox.Show(NextFolder.Name);
MessContents(NextFolder);
}

}

hehe.. I missed that.. I was watching semi-pro when i replied to that
post. Will ferrel's worst movie ever
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

Recursive Reading 1
ContextSwitchDeadlock 2
Winfprm Application Hangs on exit. 2

Top