Seite 1 von 1

Gelöst - Ordnerinhalt lesen

Verfasst: 03.12.2012 16:50
von _v4
Hallo,

wollte unter Windows den Inhalt eines Ordners lesen und dann die Dateinamen im Ordner nach der Reihe als String abarbeiten. Kann jemand sagen wie das grob geht?

Vielen Dank schonmal für die Hilfe!

__________________________________________________
Thread verschoben
Windows>Anfänger
03.12.2012
RSBasic

Re: Ordnerinhalt lesen

Verfasst: 03.12.2012 16:53
von ts-soft

Re: Ordnerinhalt lesen

Verfasst: 03.12.2012 17:50
von _v4
Danke für die schnelle Antwort. Hat mich soweit schon weiter gebracht. Habe auch gesehen, dass ich mit RenameFile() den Pfad der Datei ändern kann. Doch wie kann ich den Pfad von meiner aktuellen Datei abfragen?

Hier mal der Code soweit:

Code: Alles auswählen

OpenConsole()
If ExamineDirectory(0, Directory$, "*.jpg")  
    While NextDirectoryEntry(0)
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
        
        ; Dateinamen lesen
        dateiname$ = DirectoryEntryName(0)
        
        ; Dateinamen am Unterstrich abschneiden und am Punkt
        ordnername$ = StringField(dateiname$,2,"_")
        ordnername$ = StringField(ordnername$,1,".")
        
        ; Dem Dateinamen ein s voranstellen
        ordnername$ = "s" + ordnername$
        
        ; Wenn Ordner nicht vorhanden, dann anlegen
        If (FileSize(ordnername$) <> -2)
           CreateDirectory(ordnername$)
        EndIf  
        
        
        
        ; Dateipfad ermitteln
        dateipfad_alt$ = GetPathPart(dateiname$)
        dateiname_alt$ = dateipfad_alt$ + "\" + dateiname$
        
        ; Neuen Dateipfad aufbauen
        dateipfad_neu$ = dateipfad_alt$ + "\" + ordnername$ + "\" + dateiname$
        
        ; Dateipfad umbenennen
        RenameFile(dateiname_alt$, dateiname_neu$)
        
        ; Ausgabe
        PrintN("Datei: " + dateiname$ + " verschoben " + dateipfad_alt$ + " " + dateipfad_neu$)
        
      EndIf
      
      
    Wend
    FinishDirectory(0)
  EndIf
  
Input()  
CloseConsole()


Re: Ordnerinhalt lesen

Verfasst: 03.12.2012 17:51
von _v4
Gut. Hat sich erledigt. Hatte auch noch nen kleinen Fehler drin. Hab jetzt dafür den Dateipfad vom Programm verwendet, das kommt dann sowieso immer ins Projektverzeichnis. Hier der fertige Code:

Code: Alles auswählen

OpenConsole()
If ExamineDirectory(0, Directory$, "*.jpg")  
    While NextDirectoryEntry(0)
      If DirectoryEntryType(0) = #PB_DirectoryEntry_File
        
        ; Dateinamen lesen
        dateiname$ = DirectoryEntryName(0)
        
        ; Dateinamen am Unterstrich abschneiden und am Punkt
        ordnername$ = StringField(dateiname$, 2, "_")
        ordnername$ = StringField(ordnername$, 1, ".")
        
        ; Dem Dateinamen ein s voranstellen
        ordnername$ = "s" + ordnername$
        
        ; Wenn Ordner nicht vorhanden, dann anlegen
        If (FileSize(ordnername$) <> -2)
           CreateDirectory(ordnername$)
        EndIf  
        
        ; Dateipfad ermitteln
        dateipfad_alt$ = GetPathPart(ProgramFilename())
        dateiname_alt$ = dateipfad_alt$ + dateiname$
        
        ; Neuen Dateipfad aufbauen
        dateiname_neu$ = dateipfad_alt$ + ordnername$ + "\" + dateiname$
        
        ; Dateipfad umbenennen
        RenameFile(dateiname_alt$, dateiname_neu$)
        
        ; Ausgabe
        PrintN("Datei: " + dateiname$ + " verschoben ")
        
      EndIf 
    Wend
    
    FinishDirectory(0)
    PrintN("Fertig!")
    
  EndIf
  
Input()  
CloseConsole()