WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Anzahl von Ordnern in einem Pfad auslesen

 

metalphony
Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 31.07.13
Wohnort: Braunschweig
Version: R2012b
     Beitrag Verfasst am: 11.12.2013, 18:29     Titel: Anzahl von Ordnern in einem Pfad auslesen
  Antworten mit Zitat      
Moin moin,
für eine for-schleife muss ich die Anzahl von den vorhandenen Ordnern automatisch herausfinden. Der Pfad wo sich die Ordner befinden speichere ich über: path = uigetdir;
jetzt hab ich zunächst es über n = what(path); probiert. Leider bekomme ich so nicht die Anzahl der vorhandenen Ordner heraus.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 12.12.2013, 00:16     Titel:
  Antworten mit Zitat      
Hallo,

versuchs mal so:
Code:
liste = dir(path))
sum([liste.isdir])


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
metalphony
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 31.07.13
Wohnort: Braunschweig
Version: R2012b
     Beitrag Verfasst am: 13.12.2013, 22:55     Titel:
  Antworten mit Zitat      
Guten Abend..
Vielen Dank soweit.
Habe gerade mal getestet und es funktioniert leider noch nicht so richtig.
Ich habe auf meinem Desktop einen testordner erstellt, wo sich 3 weitere ordnet befinden.
Wenn ich liste = dir(path))....(path hole ich mir über "uigetdir" ) ausführe dann wird eine matrix mit 5 structs erstellt --> Bild 1.
Die in den ersten beiden structs sind beim Namen (wo eigentlich die Ordner Namen stehen müssten) merkwürdige zeichen eingetragen --> Bild 2 und Bild 3.
In den weiteren structs kommen dann die eigentlichen ordnernamen.
Leider variiert auch die Anzahl von structs mit "merkwürdigen Zeichen" wenn ich einen anderen ordner auswähle wo sich nur weitere ordnet drin befinden.
Woran liegt das?
Ziel ist es halt durch die Anzahl der ordner bzw. lenght(list) das ende einer laufvariablen zu definieren.

bild1.png
 Beschreibung:

Download
 Dateiname:  bild1.png
 Dateigröße:  277.07 KB
 Heruntergeladen:  380 mal
bild2.png
 Beschreibung:

Download
 Dateiname:  bild2.png
 Dateigröße:  261.02 KB
 Heruntergeladen:  382 mal
bild3.png
 Beschreibung:

Download
 Dateiname:  bild3.png
 Dateigröße:  261.16 KB
 Heruntergeladen:  370 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 13.12.2013, 23:26     Titel:
  Antworten mit Zitat      
Hallo,

die ersten beiden Einträge sind meines Wissens immer . (momentanes Verzeichnis) und .. (übergeordnetes Verzeichnis). Lass die beiden doch einfach weg?
Falls du andere Verzeichnisse mit "merkwürdigen Namen" hast, würde mich interessieren, welche das sind.

Worüber willst du denn iterieren?
Falls über alle Unterverzeichnisse, dann musst du deren Namen kennen?
Und wenn du deren Namen kennst, dann doch auch deren Anzahl?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 14.12.2013, 13:57     Titel:
  Antworten mit Zitat      
Hallo

das ist nichts merkwürdiges, das ist immer Standard, kannst ja DIR in der Windows Shell oder Linux Shell eingegeben.
Also DIR liefert immer 2 Verzeichnisse mehr für aktuellen und übergeordneten Ordner, das kommt daher dass man nicht nur ein absoluten Pfad sondern auch relativen Pfade eingeben kann.
z.B.

Code:

% bedeutet den Wechsel zu übergeordneten Ordner:
cd ..
 


du kannst aber so modifizieren
Code:

liste = dir(pwd);
liste = {liste([liste.isdir]).name};
liste = setdiff(liste, {'.', '..'});
fprintf('Anzahl Ordner %d \n', numel(liste));



 


Zuletzt bearbeitet von denny am 16.12.2013, 14:08, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
metalphony
Themenstarter

Forum-Century

Forum-Century


Beiträge: 119
Anmeldedatum: 31.07.13
Wohnort: Braunschweig
Version: R2012b
     Beitrag Verfasst am: 16.12.2013, 11:12     Titel:
  Antworten mit Zitat      
Super! Vielen Dank für die Info und den Code! Funktioniert! Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.