Delphi :Переименование недействительной папки

У меня есть приложение, которое создает недопустимые каталоги... например.c:\Program Files\somedirectory.-точка является частью имени каталога.

Теперь я перепробовал все, что знаю о переименовании файла в Delphi.

  • ПереименоватьФайл (файл1,файл2)
  • ПереместитьФайл (Файл1,Файл2)
  • и т.д...

Я попытался получить короткий путь 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 позже.

Итак, мой вопрос: :Кто-нибудь знает функцию, которая позволит мне переименовать недопустимый каталог?

12
задан Blorgbeard 26 June 2012 в 03:45
поделиться