Ordner auslesen und neuen Pfad anbieten



  • hallo,

    ich habe einen currentPath welcher sich aus der aktuellen position eines dirTreeMenus ergibt, und einen writePath welcher den pfad zum speichern von dateien automatisch anbietet.
    sobald in einem ordner namens "PD" die folgende struktur in den unterordnern gefunden wird: "PD001" "PD002" etc. soll die methode die unterordner auslesen und die pfade solange durchgehen, bis der nächst freie erzeugt werden kann (in diesem beispiel würde der ordner "PD003" angelegt werden. mein problem ich erhalte eine zahl in millionenhöhe "PD3424082" und weiß nicht woran das noch liegen könnte.
    über einen lösungsansatz würde ich mich sehr freuen!

    CString CPDCDlg::offerWritePath(CEdit& m_hWritePath)
    {
      StringArray* folderArray = new StringArray;
      CArray<int,int> intArray;
      CString newFolderArray = "";
      fileControl->getReader().getFileList(currentPath, "PD*", folderArray, 1);
      for(int i=0; i<folderArray->GetSize(); i++)       //Anzahl der Ordner
      {
        if(folderArray->GetAt(i).GetLength() >= 5)      //Müssen 5 oder mehr Zeichen enthalten+
        {
          newFolderArray = folderArray->GetAt(i).GetAt(2) + folderArray->GetAt(i).GetAt(3) + folderArray->GetAt(i).GetAt(4);
          intArray.Add(atoi(newFolderArray));            //die 3. bis 5. Ziffer wird ausgelesen und in ein intArray übergeben
        }
        for(int j=0; j<intArray.GetSize(); j++)          //Nummer des PD-Ordners abarbeiten und in String rücktransformieren
        {
          newFolderArray.Format("%d", intArray);
          if(PathFileExists(currentPath + "\\PD" + newFolderArray))
            j++;
          else
            m_hWritePath.SetWindowText(currentPath + "\\PD" + newFolderArray);
        }
      }
      delete folderArray;
      return currentPath + "\\PD" + newFolderArray;
    }
    


  • Geh einfach schrittweise mit dem Debugger durch, dann wirst du den Fehler auch schnell finden.



  • newFolderArray.Format("%d", intArray[j]);
    

Anmelden zum Antworten