Recursive Reading : Corrected

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Benjamin Vigneaux

    #1

    Recursive Reading : Corrected

    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(Di rectoryInfo root)
    {

    foreach (DirectoryInfo NextFolder in root.GetDirecto ries())
    {
    MessageBox.Show (NextFolder.Nam e);

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

    MessContents(Ne xtFolder);
    }


    }

    Thnx in advance!

    Benjamin Vigneaux,

  • =?ISO-8859-1?Q?G=F6ran_Andersson?=

    #2
    Re: Recursive Reading : Corrected

    Benjamin Vigneaux wrote:
    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(Di rectoryInfo root)
    {
    >
    foreach (DirectoryInfo NextFolder in root.GetDirecto ries())
    {
    MessageBox.Show (NextFolder.Nam e);
    >
    foreach (FileInfo NextFile in root.GetFiles() )
    {
    MessageBox.Show (NextFile.Name) ;
    }
    >
    MessContents(Ne xtFolder);
    }
    >
    >
    }
    >
    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?

    --
    Göran Andersson
    _____
    Göran Anderssons privata hemsida.

    Comment

    • parez

      #3
      Re: Recursive Reading : Corrected

      On Jun 14, 4:51 pm, "Benjamin Vigneaux" <b...@mi.clwrot e:
      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(Di rectoryInfo root)
      {
      >
      foreach (DirectoryInfo NextFolder in root.GetDirecto ries())
      {
      MessageBox.Show (NextFolder.Nam e);
      >
      foreach (FileInfo NextFile in root.GetFiles() )
      {
      MessageBox.Show (NextFile.Name) ;
      }
      >
      MessContents(Ne xtFolder);
      }
      >
      }
      >
      Thnx in advance!
      >
      Benjamin Vigneaux,

      Not sure but

      protected void MessContents(Di rectoryInfo root)
      {

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

      foreach (DirectoryInfo NextFolder in
      root.GetDirecto ries())
      {
      MessageBox.Show (NextFolder.Nam e);

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

      MessContents(Ne xtFolder);
      }

      }



      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
      }
      }

      Comment

      • =?ISO-8859-1?Q?G=F6ran_Andersson?=

        #4
        Re: Recursive Reading : Corrected

        parez wrote:
        // 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(Di rectoryInfo root) {
        foreach (FileInfo NextFile in root.GetFiles() ) {
        MessageBox.Show (NextFile.Name) ;
        }
        foreach (DirectoryInfo NextFolder in root.GetDirecto ries()) {
        MessageBox.Show (NextFolder.Nam e);
        MessContents(Ne xtFolder);
        }
        }


        --
        Göran Andersson
        _____
        Göran Anderssons privata hemsida.

        Comment

        • parez

          #5
          Re: Recursive Reading : Corrected

          On Jun 15, 4:57 am, Göran Andersson <gu...@guffa.co mwrote:
          parez wrote:
          // 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(Di rectoryInfo root) {
          foreach (FileInfo NextFile in root.GetFiles() ) {
          MessageBox.Show (NextFile.Name) ;
          }
          foreach (DirectoryInfo NextFolder in root.GetDirecto ries()) {
          MessageBox.Show (NextFolder.Nam e);
          MessContents(Ne xtFolder);
          }
          >
          }
          >
          --
          Göran Andersson
          _____http://www.guffa.com
          hehe.. I missed that.. I was watching semi-pro when i replied to that
          post. Will ferrel's worst movie ever

          Comment

          Working...