Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.038 c
3-1097560479
Санёк
2004-10-12 09:54
2004.11.14
ADO - обновление данных перед редактированием


14-1099004036
GuestTM
2004-10-29 02:53
2004.11.14
Существует ли компонент для работы с драйверами RegMon от SysInt?


1-1099303347
Ш-К
2004-11-01 13:02
2004.11.14
Объединение двух XML


14-1098954327
dr Tr0jan
2004-10-28 13:05
2004.11.14
Разница между GMT и Московским временем


9-1088325591
ASoft
2004-06-27 12:39
2004.11.14
DelphiX





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский