Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

Удаление файла со спец.символом в имени из Делфи   Найти похожие ветки 

 
Кашперук Иван   (2006-02-28 18:20) [0]

Пытаюсь удалить файл
Пе[кракозябля]тр.xls
пробовал DeleteFile, Erase
Обе ругаются - не могу найти файл.

Как удалить?

Кракозябля - часть рамки (вертикальная и полугоризонтальная полоска), как говорит товарищ Word

PS Средствами Винды удаляется нормально!!!


 
Desdechado ©   (2006-02-28 18:23) [1]

попробуй не вводить имя файла, а через OpenDialog выбрать его, а потом удалять


 
Crash Coredump ©   (2006-02-28 18:34) [2]

DeleteFileW


 
Кашперук Иван   (2006-02-28 18:55) [3]

Не работает к сожалению ни то, ни то

Вот код: (последней строкой - путь к файлу в ASCII кодах)

 if OpenDialog1.Execute then
 begin
   error := DeleteFileW(PWideChar(OpenDialog1.FileName));
 end;
 if not error then
   ShowMessage(SysErrorMessage(GetLastError));
//  ShowMessage(#99#58#92#207#229#166#242#240#126#87#68#46#88#76#83);


 
begin...end ©   (2006-02-28 19:00) [4]

DeleteFile(PWideChar(WideString(OpenDialog1.FileName)))


 
begin...end ©   (2006-02-28 19:02) [5]

[4] -- DeleteFileW, конечно же.


 
Кашперук Иван   (2006-02-28 19:05) [6]

И так не удаляет.
И если заменить на DeleteFileW тоже


 
Crash Coredump ©   (2006-02-28 19:13) [7]

FindFirstFileW + DeleteFileW

begin...end ©   (28.02.06 19:00) [4]

После OPenDialog он уже Ansi, так что перекодировать его в Unicode бесполезно.

Проблема в том, что в имени файла есть не ANSI-символ, который после перекодировки в ANSI становится совсем не тем, который на самом деле. И после преобразования его в Unicode функцией DeleteFile его имя не такое, какое на диске.


 
Кашперук Иван   (2006-02-28 19:18) [8]

а проще? я не делаю поиск - хочу просто удалить (точнее, я то делаю, и потом попробую через W - версии поиска)

Из Пуск->Выполнить это работает  и удаляет файл
cmd /c del e:\Пе╡тр~WD.XLS

а из делфи это не работате:
ShellExecute(Application.Handle, "open", "cmd.exe" PAnsiString("/c del " + OpenDialog1.FileName), nil, sw_hide);

Как выбрать имя этого файла, чтоб оно не преобразовывалось в ANSI?


 
Кашперук Иван   (2006-02-28 19:24) [9]

Просто вот этот код тоже не работает - хотя по идее он сам должен был строку преобразовать в Wide

 DeleteFileW("C:\Пе¦тр~WD.XLS");


 
Игорь Шевченко ©   (2006-03-01 00:43) [10]

Кашперук Иван   (28.02.06 19:18) [8]

Если в имени файла есть символ Unicode, то его бесполезно передавать в ANSI-функции.


> Из Пуск->Выполнить это работает  и удаляет файл
> cmd /c del e:\Пе╡тр~WD.XLS


Диалог "Пуск|выполнить" работает с Unicode-символами.

Может быть, стоит у файла имя изменить, чтобы он создавался без неприличных символов ? Тоже,знаете ли, выход.


 
Германн ©   (2006-03-01 02:42) [11]

Я, конечно, "лопух", но Windows Commander ака Total Commander при мне.

2 Игорь Шевченко ©   (01.03.06 00:43) [10]
TC прекрасно удаляет сию лабуду. Как - не знаю, но для него это не проблема.


 
AlexeyT ©   (2006-03-01 09:52) [12]


> TC прекрасно удаляет сию лабуду. Как - не знаю, но для него
> это не проблема.


TC удаляет файл через его _короткое_ имя (8.3). Если у файла нет короткого имени, TC его не удалит.


 
vovnuke ©   (2006-03-01 10:16) [13]

Попробуй перед операциями с файлом выполнить
SetFileApisToOEM,
а после
SetFileApisToAnsi



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
15-1141884212
Ega23
2006-03-09 09:03
2006.04.02
С Днём рождения! 8 марта


2-1142333803
webpauk
2006-03-14 13:56
2006.04.02
Определить откуда создавался component


1-1140940887
Paha
2006-02-26 11:01
2006.04.02
TICQClient и сообщения с мобильника


15-1141957486
grisme
2006-03-10 05:24
2006.04.02
Математика


2-1142800561
Quattro
2006-03-19 23:36
2006.04.02
Окно-заставка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский