Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 CreateDir создал "неубиваемый" каталог  [new]
crossa
Member

Откуда:
Сообщений: 54
Потребовалось создать подкаталог в существующем каталоге. Написал код:
var sDir: String;

sDir := 'C:\Temp\Document1 '; // на конце пробел!
if sDir[Length(sDir)] <> '\' then sDir := sDir + '\';
CreateDir(sDir);

Подкаталог был создан, но оказалось, что его нельзя удалить. При попытке удаления папки со всем содержимым Windows Explorer выдает сообщение "Не удается удалить файл. Не удается произвести чтение из файла или с диска." Папку удалось удалить при помощи одного из файловых менеджеров (полностью удалить, а не отправить в "Корзину").

Дело именно в пробеле на конце имени подкаталога. Я могу, конечно, убирать все пробелы в конце имени папки перед ее созданием, но хотелось бы понять, почему именно возникает такая проблема.
10 янв 18, 17:15    [21094293]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
crossa,

Вы пытаетесь обмануть систему, а она пытается обмануть вас :)
скорее всего при создании этой директории "пробел" трактуется как какой-либо спец символ(ax,0920h ) или табуляция.
10 янв 18, 17:20    [21094308]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46361

crossa
хотелось бы понять, почему именно возникает такая проблема.

Очевидно, баг в Windows Explorer.

Posted via ActualForum NNTP Server 1.5

10 янв 18, 17:22    [21094313]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
для примера создайте ручками папку с пробелом на конце :)
у вас это не получитсЯ)))
10 янв 18, 17:24    [21094327]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
чччД
Guest
crossa
...Я могу, конечно, убирать все пробелы в конце имени папки перед ее созданием, но хотелось бы понять, почему именно возникает такая проблема.

Ты обнаружил "странное поведение" в WindowExplorer, но ищешь правды в форуме Delphi - это нормально?
И что даст тебе "понимание"? Ты будешь и дальше создавать каталоги с хвостовыми пробелами, но с умом?
10 янв 18, 17:29    [21094341]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
чччД,

Молодой подаван истину постигать решил наверное наверное. :) вот и скучно ему.
10 янв 18, 17:31    [21094346]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Barmaley57
Member

Откуда: Москва
Сообщений: 5700
cmd.exe -> md "\\?\c:\123 "
а потом удаляйте в проводнике))
10 янв 18, 17:32    [21094352]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
crossa,

ок коли ты начал)) создай папку "con" ?
10 янв 18, 17:33    [21094356]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
Barmaley57,
не мышкой ))
10 янв 18, 17:34    [21094358]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Barmaley57
Member

Откуда: Москва
Сообщений: 5700
Ну дык windows explorer до сих пор не умеет работать с длинными именами файлов. Хорошо это или плохо - даже не знаю)
10 янв 18, 17:36    [21094365]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
Barmaley57,

скорее хорошо) от рукожопства спасает. иначе беда, беда))
10 янв 18, 17:37    [21094373]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Amiri
Member

Откуда: Pakistan
Сообщений: 716
crossa
Потребовалось создать подкаталог в существующем каталоге. Написал код:
var sDir: String;

sDir := 'C:\Temp\Document1 '; // на конце пробел!
if sDir[Length(sDir)] <> '\' then sDir := sDir + '\';
CreateDir(sDir);

Подкаталог был создан, но оказалось, что его нельзя удалить. При попытке удаления папки со всем содержимым Windows Explorer выдает сообщение "Не удается удалить файл. Не удается произвести чтение из файла или с диска." Папку удалось удалить при помощи одного из файловых менеджеров (полностью удалить, а не отправить в "Корзину").

Дело именно в пробеле на конце имени подкаталога. Я могу, конечно, убирать все пробелы в конце имени папки перед ее созданием, но хотелось бы понять, почему именно возникает такая проблема.


ну дык как там???
sDir := 'C:\Temp\con
осилишь?
10 янв 18, 17:39    [21094376]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
crossa
Member

Откуда:
Сообщений: 54
Откуда столько желчи? Я задал конкретный вопрос о конкретной проблеме.

Папку с пробелом на конце создаю не я лично: в моем программном продукте пользователи могут задавать имя каталога, вот и нашелся один пользователь, который случайно ввел имя каталога с пробелом на конце. Я никогда раньше не слышал об этой проблеме; решил, что это какая-то ошибка в работе CreateDir. Теперь понял, что это проблема операционной системы.
10 янв 18, 19:48    [21094701]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 885
Была та же самая проблема, решение было - переименовать каталог.

И сразу удалось удалить его.
10 янв 18, 22:24    [21094977]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
чччД
Guest
crossa
...Теперь понял, что это проблема операционной системы.

Ну конечно, ты все понял.
10 янв 18, 22:35    [21094995]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 49131
Dimitry Sibiryakov
crossa
хотелось бы понять, почему именно возникает такая проблема.

Очевидно, баг в Windows Explorer.
и он есть даже в самой последней 10-ке
10 янв 18, 22:59    [21095062]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
чччД
Guest
...вспомнился api одной древней BDOS, в нем вполне себе можно было создавать и файлы с одинаковыми именами. :)
10 янв 18, 23:04    [21095069]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 885
чччД
...вспомнился api одной древней BDOS, в нем вполне себе можно было создавать и файлы с одинаковыми именами. :)



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

К сообщению приложен файл (Новая папка.7z - 703bytes) cкачать
11 янв 18, 02:22    [21095398]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 885
Блин. После запаковки в архив, это не канает. Давно ещё читал, как можно сделать рекурсию, и если войти в папку содержащую папку, то будет падать explorer
11 янв 18, 02:27    [21095399]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 885
Такие трюки вообще волшебные

К сообщению приложен файл. Размер - 67Kb
11 янв 18, 02:31    [21095402]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
Няшик
Member

Откуда: Екатеринбург
Сообщений: 885
После распаковки работает. Папка становится недоступной в проводнике

К сообщению приложен файл (Test.7z - 747bytes) cкачать
11 янв 18, 02:35    [21095403]     Ответить | Цитировать Сообщить модератору
 Re: CreateDir создал "неубиваемый" каталог  [new]
чччД
Guest
НяШарик ты балбес!...
11 янв 18, 03:05    [21095407]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить