Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Внизудаление файла Найти похожие ветки
← →
проходящий мимо (2004-10-29 19:55) [0]Как удалить несколько файлов из LIstView выделенных checked в корзину
← →
GuAV © (2004-10-29 20:21) [1]проходящий мимо (29.10.04 19:55)
Как удалить несколько файлов из LIstView выделенных checked в корзину
Перебрать все файлы в ListView. Те которые выделенны checked, добавить в список файлов подлежащих удалению в корзину.
Удалить файлы из сформированного списка в корзину с помощью SHFileOperation. (Формат списка описан в описании SHFileOperation.)
← →
Defunct © (2004-10-29 21:05) [2]DeleteFile() F1
Erase() F1
← →
begin...end © (2004-10-29 21:18) [3]
> [2] Defunct © (29.10.04 21:05)
Неверно.
← →
Defunct © (2004-10-29 21:32) [4]begin...end © (29.10.04 21:18) [3]
неверно что?
Корзина - это приблуда для дураков, которые не в состоянии самостоятельно понять, что они хотят удалить. Корзиной правит ОС, и помещает в нее удаляемые функцией ОС (DeleteFile) файлы при соответстующей настроке "корзины".
← →
begin...end © (2004-10-29 21:48) [5]
> [4] Defunct © (29.10.04 21:32)
Не могли бы Вы пояснить, при каких "настройках Корзины" функции System.Erase(), SysUtils.DeleteFile() и Windows.DeleteFile() удаляют файл именно в Корзину?
← →
Defunct © (2004-10-29 22:13) [6]begin...end © (29.10.04 21:48) [5]
Все эти функции просто удаляют файл. А вот система, или в частности Norton Unrase Wizard или как его там обзывают перехватывает функцию удаления и вместо удаления перемещает файлы в папку "recycle bin" (говорю ж корзина - приблуда для дураков придумана для безмозглых секретарш, "Ой, а куда делась иконка ворда с рабочего стола, была а теперь нет?!").
> Не могли бы Вы пояснить, при каких "настройках Корзины" функции System.Erase(), SysUtils.DeleteFile() и Windows.DeleteFile() удаляют файл именно в Корзину?
Не мог бы, потому что у меня с момента появления виндовс настройки корзины всегда были и остаются:
- use one settings for all drives
- do not move files to recycle bin
- remove files immediatelly when deleted
- do not display Delete confirmation dialog
← →
begin...end © (2004-10-29 22:19) [7]
> [6] Defunct © (29.10.04 22:13)
> Все эти функции просто удаляют файл.
Ну вот видите, Вы сами и ответили на свой вопрос в [4]: "неверно что?".
Неверен Ваш ответ на вопрос товарища "проходящий мимо".
А заявления относительно "приблуды для дураков" - это уж, извините, совсем не к месту.
← →
Defunct © (2004-10-30 00:09) [8]> Ну вот видите, Вы сами и ответили на свой вопрос в [4]: "неверно что?".
Я не отвечал на свой вопрос, потому что неверно [3].
Спор бессмысленный.
Вы читаете одно предложение, и пропускаете второе. Так же как и с химией.
> "приблуды для дураков" - это уж, извините, совсем не к месту.
еще как к месту.
> Неверен Ваш ответ на вопрос товарища "проходящий мимо".
цитирую вопрос:
"удаление файла"
DeleteFile() F1
Erase() F1
если бы автор написал "как переместить группу файлов в корзину?" он получил бы от меня другой ответ.
← →
Defunct © (2004-10-30 00:16) [9]Чтобы полностью отбить у Вас возможность возразить добавлю:
удалить группу файлов в корзину нельзя, потому что "корзина" это каталог, а глагол "удалить" подразумаевает вытирание файла с диска с освобождением дискового пространства, занимаего этим файлом. В корзину можно переместить. Удалить же файл можно процедурами:
Erase
DeleteFile
← →
Defunct © (2004-10-30 00:24) [10]begin...end если я вас спрошу: "Как похоронить ребенка в школу"
Вы мне предложите купить гробик или дожидаться школьного автобуса?
← →
GuAV © (2004-10-30 00:28) [11]Defunct © (30.10.04 0:09) [8]
цитирую вопрос:
"удаление файла"
DeleteFile() F1
Erase() F1
если бы автор написал "как переместить группу файлов в корзину?" он получил бы от меня другой ответ.
Вы невнимательны.
Вопрос был как раз как удалить в корзину.
← →
Defunct © (2004-10-30 00:48) [12]GuAV © (30.10.04 00:28) [11]
Вы невнимательны вдвойне.
читать [10]
← →
GuAV © (2004-10-30 01:29) [13]Defunct © (30.10.04 0:48) [12]
Вы невнимательны вдвойне.
читать [10]
Я наверное тупой, [10] я не понял.
Но Вас я действительно не понял. Сначала Вы утверждаете что DeleteFile при соотв настройке ОС удалит файл в корзину, потом говорите что корзина не нужна, потом говорите что не было в вопросе никакой корзины и если бы она была Вы бы ответили правильно.
Не Вам решать нужна ли корзина. Можете только для себя решить этот вопрос, но не за всех.
Но если сами видете что ответили неправильно зачем Вы упираетесь. Даже Мастера иногда ошибаются - но они признают свои ошибки. А Вы сосвоим упорством выглядите глупо.
← →
Defunct © (2004-10-30 01:51) [14]> Я наверное тупой, [10] я не понял.
Я так не говорил, Вы это сами сказали
> Но Вас я действительно не понял.
Раскладывю по полочкам.
> Сначала Вы утверждаете что DeleteFile при соотв настройке ОС удалит файл в корзину
Да при соответствующей настройке ОС, а именно Unerase Wisard и Extented Recycle bin удаляемые файлы действительно не удаляются, а помещаются в корзину.
> потом говорите что корзина не нужна
Да корзина не нужна, тем кто хоть чуть-чуть отвечает за свои действия и понимает, что корзина неоправдано отгрызает полезное пространство на HDD и тормозит работу удаления.
> потом говорите что не было в вопросе никакой корзины и если бы она была Вы бы ответили правильно.
Этого я не говорил, нечего мне приписывать какую-то вымышленную вами ерунду. Я говорил вот что:
удалить группу файлов в корзину нельзя, потому что "корзина" это каталог, а глагол "удалить" подразумаевает вытирание файла с диска с освобождением дискового пространства, занимаего этим файлом. В корзину можно переместить.
Если вы не поняли, Repeat перечитайте еще раз Until clear.
> Не Вам решать нужна ли корзина.
Не мне, я просто указал для кого нужна корзина.
> Можете только для себя решить этот вопрос, но не за всех.
Для себя решил. Вам что-то не нравится в том как я решил этот вопрос для себя?
> Но если сами видете что ответили неправильно
Это вы видете, что я якобы ответил неправильно.
> зачем Вы упираетесь.
Потому в данном случае не сомневаюсь в своей правоте. Если вы сомневаетесь, тогда перечитайте [9], пока тоже не перестанете сомневаться.
> Даже Мастера иногда ошибаются - но они признают свои ошибки. А Вы сосвоим упорством выглядите глупо.
Я не собираюсь признавать ошибки, так где ее не допускал. Да вы правы, я выгляжу глупо когда трачу время на этот форум, ну что ж поделать вредная привычка уже. Мог бы заняться чем-то полезным.
← →
GuAV © (2004-10-30 03:03) [15]Defunct © (30.10.04 0:16) [9]
удалить группу файлов в корзину нельзя, потому что "корзина" это каталог, а глагол "удалить" подразумаевает вытирание файла с диска с освобождением дискового пространства, занимаего этим файлом. В корзину можно переместить. Удалить же файл можно процедурами
Разумеется, Вы можете считаь что файл не удаляестя а переносится в корзину. Однако с точки зрения терминологии Microsoft вопрос был поставлен правильно. Вот например ответ на этот вопрос для VB http://support.microsoft.com/default.aspx?scid=kb;en-us;154005
> Unerase Wisard и Extented Recycle bin
Не думаю что у многих эти штуки есть. Удаление DeleteFile будет удалять в корзину если они установленны, это более чем соотвествующие настройки ОС это соответсвующее ПО.
С помощью SHFileOperation с флагом FOF_ALLOWUNDO можно удалить файл в корзину, если она включена.
Так что всё же согласен с [3].
← →
Defunct © (2004-10-30 03:29) [16]GuAV © (30.10.04 03:03) [15]
Снимаю кепку за труд в поисках ссылки. ;)
Ну что ж, recycle bin разработка MS, они имеют право применять любую терминологию в отношении их продукта. Мне ничего не остается кроме как принести извинения за моральный ущерб, и признать, что был не прав.
ps: Delete а file into recycle bin, читается все же примерно как[10].
← →
_def[eND]er (2004-10-30 08:08) [17]Ну да ладно, сами спорьте, как файло затирать, а я ска;у, как чекнутые файлы обработать. Надо так:
with ListView, Items do
for I := 0 to Count - 1 do
if Items[I].Checked then
DeleteFile(Items[I].Caption);
← →
begin...end © (2004-10-30 10:30) [18]
> [8] Defunct © (30.10.04 00:09)
> Я не отвечал на свой вопрос, потому что неверно [3].
Если Вы не поняли, я поясню Вам: своей фразой из [6] "Все эти функции просто удаляют файл." Вы подтвердили несоответствие своего ответа [2] поставленному вопросу "Как удалить несколько файлов из LIstView выделенных checked в корзину".
> [9] Defunct © (30.10.04 00:16)
> В корзину можно переместить. Удалить же файл можно процедурами:
> Erase
> DeleteFile
Если Вы не согласны с корректностью термина "удалить в Корзину", хотя это - действительно терминология Microsoft, о чём вам потом и сообщил GuAV в [15], то, следовательно, вопрос "Как удалить несколько файлов из LIstView выделенных checked в корзину" Вы тоже считаете некорректным. Получается - Вы в [2] не указываете, что вопрос вообще-то некорректен, а отвечаете на какой-то совсем другой, корректный, по-Вашему, вопрос. Как Вы вообще думаете: как можно правильно ответить на некорректный вопрос, кроме как сказать, что он некорректен?
> [10] Defunct © (30.10.04 00:24)
> begin...end если я вас спрошу: "Как похоронить ребенка в
> школу"
>
> Вы мне предложите купить гробик или дожидаться школьного
> автобуса?
Нет, в этом случае я постараюсь сообщить Вам адрес ближайшего лечебного учреждения. Для Вас.
> [14] Defunct © (30.10.04 01:51)
> Да вы правы, я выгляжу глупо когда трачу время на этот форум,
> ну что ж поделать вредная привычка уже. Мог бы заняться
> чем-то полезным.
Ну что Вы, без Вас здесь было бы очень скучно.
> [16] Defunct © (30.10.04 03:29)
> Мне ничего не остается кроме как принести извинения за моральный
> ущерб, и признать, что был не прав.
Не верю своим глазам.
> [17] _def[eND]er (30.10.04 08:08)
Это Вы зачем высказались? Типа - очень умный?
Тут кто-то уже приводил пример - заканчивается конференция по ядерной физике, как вдруг входит человек и говорит: "Это всё, конечно, хорошо, но вы знаете, что ядро состоит из протонов и нейтронов? Сейчас я вам расскажу..."
← →
GuAV © (2004-10-30 13:52) [19]_def[eND]er (30.10.04 8:08) [17]
with ListView, Items do
for I := 0 to Count - 1 do
if Items[I].Checked then
Согласен, можно так.
DeleteFile(Items[I].Caption);
Уже ж договорились SHFileOperation
Не стоит удалять по одному. Вместо этого следует добавить все в список.with ListView.Items do
for I := 0 to Count - 1 do
if Item[I].Checked then
SFrom := SFrom + Items.Strings[I] + #0;
if SFrom = "" then Exit;
SFrom := SFrom + #0;
FillChar(Op,SizeOf(Op),0);
with Op do
begin
Wnd := Handle;
pFrom := @SFrom[1];
wFunc := FO_DELETE
{ if GetKeyState(VK_SHIFT) >= 0 then
fFlags := FOF_ALLOWUNDO or fFlags; }
end
SHFileOperation(Op);
← →
GuAV © (2004-10-30 15:44) [20]GuAV © (30.10.04 13:52) [19]
{ if GetKeyState(VK_SHIFT) >= 0 then
fFlags := FOF_ALLOWUNDO or fFlags; }
Виноват, закоментировал неверно. Правильно такwith Op do
begin
Wnd := Handle;
pFrom := @SFrom[1];
wFunc := FO_DELETE
fFlags := FOF_ALLOWUNDO or fFlags;
end
SHFileOperation(Op);
← →
_def[eND]er (2004-10-31 01:32) [21]2 begin...end ©
Под "чекнутыми" файлами я подразумевал елементы ListView со свойством Checked
И я типа не самый умный - человек спросил одно, а вы тут развели базар не в тему
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.049 c