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

neuesten Ordner in einem bestimmten Verzeichnis finden

 

chbest
Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 14.05.2012, 07:36     Titel: neuesten Ordner in einem bestimmten Verzeichnis finden
  Antworten mit Zitat      
Ist es möglich aus einem bestimmten Explorer Verzeichnis, den neuesten Unterordner zu finden?

Danke für Eure Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Lord_nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2012, 07:54     Titel:
  Antworten mit Zitat      
Hallo chbest,

ja:

Code:

Info = dir(pwd);
datestr(Info(1).datenum)
 
 
Lord_nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2012, 08:01     Titel:
  Antworten mit Zitat      
oder etwas ausführlicher:

Code:

Info = dir(pwd);
DirIndex = [Info.isdir];
NewestDate = max([Info(DirIndex).datenum]);
Info(DirIndex(NewestDate==[Info(DirIndex).datenum]))
 


Gruß Lord nibbler
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 14.05.2012, 17:12     Titel:
  Antworten mit Zitat      
Hallo Lord_nibbler,

Etwas schneller, dafür wird aber nur ein Ordner ausgewählt, falls zwei mit der gleichen Zeit vorliegen:
Code:

Info = dir(pwd);
[NewestDate, Index] = max([Info([Info.isdir]).datenum]);
Info(Index)
 

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 23.05.2012, 07:39     Titel: Gute Tipps!
  Antworten mit Zitat      
Hallo Jan S, Dein Code ist schon mal klasse, jedoch wie bekomme ich daraus den Ordnernamen heraus? Ich bekomme die Antworten:

ans =

name: '.'
date: '23-Mai-2012 08:03:56'
bytes: 0
isdir: 1
datenum: 7.3501e+005

Der Orndername des neuesten Ordners ist noch nicht dabei. (Der name ist nicht "."! Gibt es da auch einen pfiffigen Befehl?
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 23.05.2012, 12:43     Titel: Warum ein Punkt als name?
  Antworten mit Zitat      
Kann mir jemand sagen, warum ein Punkt statt dem Ordnernamen erscheint?
Private Nachricht senden Benutzer-Profile anzeigen
 
_Peter_
Moderator

Moderator


Beiträge: 537
Anmeldedatum: 08.12.10
Wohnort: ---
Version: 7.10, 2010a
     Beitrag Verfasst am: 24.05.2012, 07:31     Titel:
  Antworten mit Zitat      
Hallo chbest,
der Befehl
Code:

gibt dir ein struct-array(Ich bin mir gerade nicht sicher ob man das so nennt) zurück.

Das erste Element ist immer der "." und das Zweite immer ".."
Das bedeutet du musst ab dem dritten Element nach deinem Namen schauen.

Code:

Info(3).name
 


p.s.: Dass die Punkte überhaupt auftauchen, hängt glaub ich damit zusammen, dass der befehl auf der DOS-Strukur aufbaut.
_________________

Gruß
Peter
_________________
goMatlab-Knigge - dran gehalten?!
Schon in den FAQ gesucht? Oder der MATLAB Hilfe?
Ist vielleicht bei den Skripten oder den Tutorials was für dich dabei?
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 24.05.2012, 08:13     Titel: Danke, das ist schon mal ein sehr guter Hinweis
  Antworten mit Zitat      
jedoch muss iich nun nur nochherausbekommen, wie ich den richtigen Namen des neuesten Ordners, den ich ja mit dem Code vorher gefunden habe, auslesen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 24.05.2012, 10:27     Titel: Das ist die komplette Lösung auf meine Frage
  Antworten mit Zitat      
Code:
Info = dir(pwd);
[NewestDate, Index] = max([Info([Info.isdir]).datenum]);
Info(Index);

anzDateien = size(Info,1); % Anzahl der Dateien im Ordner
Info(anzDateien).name  % die Zahl in der Klammer müsste nun nur noch genau auf den namen passen


habe ich doch selbst auch noch einen (kleinen) Beitrag geleistet!

Danke an alle Beteiligten!
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.05.2012, 11:21     Titel: Re: Das ist die komplette Lösung auf meine Frage
  Antworten mit Zitat      
Hallo chbest,

Die Zeile "Info(Index);" bewirkt gar nichts. Zudem bezieht sich "Index" nur auf die Ordner, während "Info" auch die Files enthält.

Code:
Info = dir(cd);
FolderIndex = find([Info.isdir]);
[NewestDate, NewestIndex] = max([Info(FolderIndex).datenum]);
NewestName = Info(FolderIndex(NewestIndex)).name;

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 24.05.2012, 11:58     Titel: hallo Jan
  Antworten mit Zitat      
mit Deiner Version bekomme ich als newestname leider nur ".." heraus.
Leider nicht das gewünschte Ergebnis.

Aber vorher war das ja bereits gelöst.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 27.05.2012, 17:41     Titel: Re: hallo Jan
  Antworten mit Zitat      
Hallo chbest,

Ich finde hier im Thread keine vollständige korrekt Lösung. Auch meine vom 14.05.2012, 18:12 ist fehlerhaft, sobald die Ordner nicht zu Beginne der Liste stehen, die DIR() zurück gibt. Das machen sie zwar im Allgemeinen, das ist aber nicht dokumentiert. Besser:
Code:
Info = dir(cd);
Name = {Info.Name};
Info(strcmp(Name, '.')) = [];
Info(strcmp(Name, '..')) = [];
FolderIndex = find([Info.isdir]);
[NewestDate, NewestIndex] = max([Info(FolderIndex).datenum]);
NewestName = Info(FolderIndex(NewestIndex)).name;

'..' ist der Parent-Ordner, und in Deinem Fall war dieser der neueste.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 29.05.2012, 13:47     Titel: So gehts nun (glaube ich) wirklich:
  Antworten mit Zitat      
Info = dir(pwd);
FolderIndex = find([Info.isdir]);
NrNeuesterOrdner = max(FolderIndex);
NEUERNAME = Info(NrNeuesterOrdner).name;
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 30.05.2012, 21:18     Titel: Re: So gehts nun (glaube ich) wirklich:
  Antworten mit Zitat      
Hallo chbest,

Den Code verstehe ich nicht:
chbest hat Folgendes geschrieben:
Code:
Info = dir(pwd);
FolderIndex = find([Info.isdir]);
NrNeuesterOrdner = max(FolderIndex);
NEUERNAME = Info(NrNeuesterOrdner).name;

Ich dachte, es geht um das neueste File. Die Ausgabe von DIR ist alphabetisch sortiert, aber dies ist nicht dokumentiert, so dass man sich nicht darauf verlassen kann. Zudem ist nicht definiert, ob Files oder Ordner zuerst in der Ausgabe aufgelistet werden, oder wie unter Linux:LS auch gemischt.

Das obige Programm gibt im Allgemeinen den Namen des Ordners aus, der alphabetisch zu letzt kommt. Das ist aber unsicher.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
chbest
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 31
Anmeldedatum: 12.12.11
Wohnort: Süddeutschland
Version: ---
     Beitrag Verfasst am: 30.05.2012, 21:57     Titel: Geht aber
  Antworten mit Zitat      
Meine Frage ging darum, dass ich den neuesten Ordner finde. Das macht der Code oben. Ob es etwas mit der Reihenfolge und dem Alphabet zu tun hat, kann ich nun nicht erkennen, sollte es aber so sein, ist es egal, solange ein neuer automatisch generierter Ordner immer richtig ordnet oder alphabetisch anordnet. Hauptsache es geht so.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.