У меня есть приложение, которое создает недопустимые каталоги... например.c:\Program Files\somedirectory.
-точка является частью имени каталога.
Теперь я перепробовал все, что знаю о переименовании файла в Delphi.
Я попытался получить короткий путь Windows ExtractShortPathName
, но это просто возвращает пустую строку. (для вызова командной строки :«ПЕРЕИМЕНОВАТЬ ShortOldName NewName»)
Теперь я знаю, что могу сделать это вручную в cmd, но я не собираюсь тратить время на то, чтобы просмотреть все мои файлы и сделать это;)
Вот немного моего кода:
xshortname := ExtractFileName(ExtractShortPathName(ns + oldName));
xNewName := newName;
cmdTxt := PWideChar('/C cd ' + ns);
cmdTxt2 := PWideChar(cmdTxt + '&&' + ' RENAME ' + xshortname + ' ' + #34 + xNewName + #34);
ShellExecute(0, nil, 'cmd.exe', cmdTxt2, nil, SW_SHOWNORMAL);
Я знаю, что shellExecute - не лучший метод для использования здесь. Я просто пытаюсь заставить вонючку работать. Я позабочусь об оптимизации и правильном кодировании Delphi позже.
Итак, мой вопрос: :Кто-нибудь знает функцию, которая позволит мне переименовать недопустимый каталог?