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

Mehrere Ordner umbenennen

 

xxxyyy
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2017, 16:55     Titel: Mehrere Ordner umbenennen
  Antworten mit Zitat      
Hallo,

ich überlege mir gerade wie ich inMatLab ein Programm schreiben kann, das mir Ordner umbenennt.

Problem:
Ich habe in einem Ordner mehrere Unterordner mit Nummern als Namen (leider nicht fortlaufend).
Also z.B. der 1. Unterordner hat den Namen: "Nr.1", der zweite den Namen "Nr.2" und der dritte aber z.B. den Namen "Nr. 4".
Nun will ich mit Hilfe eines kleinen Programms die Unterordner umbenennen.
Dazu habe ich mir eine Excel Liste erstellt in der in der 1. Spalte die alte Bezeichung steht und in der zweiten Spalte die neue Bezeichnung in die ich die Unterordner gerne umbenennen würde.
z.B.
Nr.1__________Fotos Urlaub 2011
Nr.2__________Fotos Urlaub 2013
Nr.4__________Fotos Urlaub 2014
usw.

Hat jemand eine Idee mit welchen Befehlen ich das machen kann.
Ich bin nicht besonders geübt im Programmieren mit MatLab und darum wollte ich mal in die Runde fragen. Vielleicht habt Ihr ja bereits Erfahrungen mit einem änlichen Programm gesammelt.

Das Programm sollte also die Nummer des ersten Unterordners einlesen. Anhand der eingelesenen Nummer soll es dann den neuen Unterordnernamen aus der Excel Tabelle herauslesen und den Unterordner dann umbenennen. Danach soll es mit dem zweiten Unterordner fortfahren,...

Ich freue mich über jeden Vorschlag Smile.
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.09.2017, 21:19     Titel:
  Antworten mit Zitat      
Hallo
mit XLSREAD kannst deine Excel-Tabelle einlesen
mit UIGETDIR kannst den Hauptordner auswählen, wo die Unterordner umbenannt werden
mit DIR kannst die Ordner in Hauptordner einlesen
mit MOVEFILE umbennen
mit STRCMP in der Liste vergleichen
so ungefähr
Code:


rootdir       = pwd
[~,renamelist] = xlsread(fullfile(rootdir, 'renamelist.xls'))
% Einlesen der Unterordner
dirs= dir(rootdir);
dirs= {dirs([dirs.isdir]).name};
% entfernen aus der Liste Current und Parent Ordner
dirs = setdiff(dirs, {'.', '..'})


% Rename in a LOOP
for k = 1:length(dirs )
    olddirname =  dirs{k}
    pos = strcmp(renamelist(:,1), olddirname)
    if any(pos)
        newdirname = renamelist{pos,2}
        oldfullname = fullfile(rootdir, olddirname );
     
        newfullname =  fullfile(rootdir,  newdirname );
        movefile(oldfullname, newfullname);
   end
end


 
Private Nachricht senden Benutzer-Profile anzeigen
 
xxxyyy
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 14.09.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.09.2017, 12:29     Titel:
  Antworten mit Zitat      
Danke für deine Antwort.
Es tut mir leid, dass ich erst so spät wieder schreibe.

Zur Frage:

Leider verstehe ich deinen Quellcode noch nicht ganz.
Wie oben bereits geschrieben ist MatLab neu für mich.
Könntest du vieleicht bitte noch etwas mehr auskommentieren. Also was genau wird in den jeweiligen Zeilen gemacht?

Das wäre nett. Smile
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: 25.09.2017, 14:48     Titel:
  Antworten mit Zitat      
Hallo xxxyyy,

Du kannst hier im Forum auf jedes blaue Kommando klicken und siehst sofort die Hilfe-Seiten. Beginne erstmal damit und stelle dann konkrete Fragen, wenn ein Befehl noch nicht klar ist. Das ist effizienter als generell alle Teile des Codes zu erklären, die vielleicht auch gar keine Fragen aufwerfen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 29.09.2017, 13:02     Titel:
  Antworten mit Zitat      
Zitat:
Leider verstehe ich deinen Quellcode noch nicht ganz.
Wie oben bereits geschrieben ist MatLab neu für mich.

Da steht, dass du nicht besonders geübt bist, aber nicht, dass du Matlab Neuling bist.
Welche Zeilen konkret, kannst du nicht verstehen?
Hier noch mal mit etwas mehr Kommentaren:
Code:

% Start Ordner
rootdir       = pwd

% deine Excel Tabelle einlesen
[~,renamelist] = xlsread(fullfile(rootdir, 'renamelist.xls'))


% Einlesen der Unterordner
dirs= dir(rootdir);
dirs= {dirs([dirs.isdir]).name};

% entfernen aus der Liste Current und Parent Ordner
dirs = setdiff(dirs, {'.', '..'})


% Rename in a LOOP
for k = 1:length(dirs )
    %
    % alten Ordner Namen uas del Liste holen
    olddirname =  dirs{k}
    %
    % Name suchen in deiner Umbenennungstabelle und zwar in der ersten Spalte
    % als Ergebnis kommt die position
    pos = strcmp(renamelist(:,1), olddirname)
    % wenn etwas gefunden wurde
    if any(pos)
        % dann der neuen Namen aus der Tabelle holen
        newdirname = renamelist{pos,2}
        % Pfade zu  absoluten Pfaden zusammensetzen
        % für alten Namen
        oldfullname = fullfile(rootdir, olddirname );
        % und für neuen Namen    
        newfullname =  fullfile(rootdir,  newdirname );
        % Umbennen des ordners, dazu MOVEFILE verwenden
        movefile(oldfullname, newfullname);
   end
end


 
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 - 2024 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.