Hallo
mit folgendem Beispielcode ist es möglich, bis zu sechs verschiedene Zeichenersetzungen, in Datei- und Verzeichnisnamen recursiv vorzunehmen.
Versuche ich beispielsweise 10 verschiedene Zeichenersetzungen, bekomme ich einen Fehler:
Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
If BitAND($aFilesFolder[$i][7], $FILE_ATTRIBUTE_DIRECTORY) Then _RenameRecursive($sPath & $aFilesFolder[$i][0])
If BitAND(^ ERROR
Warum das ganze:
Es dürfen nur Buchstaben, Zahlen, Binde- und Unterstrich in meinenDatei- und Verzeichnisnamen zugelassen werden. Alle anderen Zeichen müssen aus bestimmten Gründen aus den Verzeichnis und Dateinamen entfernt werden.
If BitAND($aFilesFolder[$i][4], $FILE_ATTRIBUTE_DIRECTORY) Then _RenameRecursive($sPath & $aFilesFolder[$i][0])
_WinAPI_ShellFileOperation($sPath & $aFilesFolder[$i][0], $sPath & StringReplace(StringReplace(StringReplace(StringReplace(StringReplace($aFilesFolder[$i][0], "ä","ae"), "ö","oe"), "ü","ue"), " ","_"), "ß","ss"), $FO_RENAME, $FOF_SILENT)
$hHBmp_BG = _GDIPlus_MultiColorLoader($iW, $iH, "Die Verzeichnisse und Dateien werden umbenannt. Bitte warten! ")
_GDIPlus_PathAddEllipse($hPath, ($iW - ($iRadius + 24)) / 2, ($iH - ($iRadius + 24)) / 2, $iRadius + 24, $iRadius + 24)
_GDIPlus_GraphicsFillEllipse($hGfx, ($iW - ($iRadius + 10)) / 2, ($iH - ($iRadius + 10)) / 2, $iRadius + 10, $iRadius + 10, $hBrush_Black)
Local Const $hBrush_Gradient = _GDIPlus_LineBrushCreate($iRadius, $iRadius / 2, $iRadius, $iRadius, 0xFF000000, 0xFF33CAFD, 1)
_GDIPlus_GraphicsDrawImageRect($hGfx, $hBitmap_Gradient, ($iW - $iRadius) / 2, ($iH - $iRadius) / 2, $iRadius, $iRadius)
Jetzt sollte ich aber bis zu (geschätzten) 30 Varianten für verschiedene Zeichenersetzungen, in Datei- und Verzeichnisnamen recursiv vorzunehmen können.
Würdet Ihr mir bitte das eine oder andere Beispiel nennen, wie Ihr das Vorhaben am sinnvollsten umsetzen würdet?