könnt ihr mir bitte mit der Funktion "ReadDirectories" aus der Makrobiblithek "Tools" helfen?
ich möchte alle Dateien in einem Ordner auf einen Rutsch ändern.
Dazu lege ich zunächst per MKDir einen Unterordner an, lese alle Dateien des Ordners nacheinander ein, ändere sie uns speichere sie im Unterordner. Soweit klappt das. Jetzt habe ich aber festgestellt, dass das Makro nach der "ersten Runde" wohl auch alle Dateine im Unterordner nochmals einliest, ändert und wiederum abspeichert. Leider erschließen sich mir die übergebenen Parameter der Funktion (ReadDirectories (Pfad , TRUE , FALSE , FALSE ) ) nicht und ich finde auch keine, für mich, verständliche Beschreibung davon. Hat da jemand was? Ich hänge auch mal einen Ausschnitt meines Codes hier an:
Code: Alles auswählen
sub update
globalScope.BasicLibraries.loadLibrary( "Tools" )
Dim aDateien() as string
Dim Arg(1) as new com.sun.star.beans.PropertyValue
speicherDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
With speicherDialog
.setTitle("Wo sind die Schülerdateien?")
End With
speicherDialog.execute()
pfad = speicherDialog.getDirectory()
aDateien = ReadDirectories (Pfad , TRUE , FALSE , FALSE )
MKDir(pfad & "/update_" & version)
If uBound( aDateien ) > -1 then
for i = lBound( aDateien) to uBound(aDateien)
FileName=aDateien(i)
sname = ConvertFromURL(FileName)
do
sname = right(sname,len(sname)-InStr(sname, "\"))
loop while InStr(sname, "\")>0
info=info & sname & chr(10)
sURL=ConvertToURL(aDateien(i))
tDoc=StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Arg())
tSheet=tDoc.sheets.getByIndex(0)
tSheet.isvisible=false
dSheet.getCellByPosition(8,0).value=tSheet.getCellByPosition(8,0).value
Anmerkung: 'Im Original wird hier natürlich mehr übernommen und auch geändert
tDoc.close(true)
dateiname=ConvertToURL(pfad & "/update_" & version & "/" & sname)
ThisComponent.storeToURL(dateiname, arg())
end if
next
end if
end sub
Pit