видалення файлу
Як видалити кілька файлів з LIstView виділених checked в кошик
хто буде проходити ним # XA0; (29.10.04 19:55)
Як видалити кілька файлів з LIstView виділених checked в кошик
Перебрати всі файли в ListView. Ті які виділенням checked, додати в список файлів які підлягають видаленню в кошик.
Видалити файли з сформованого списку в кошик за допомогою SHFileOperation. (Формат списку описаний в описі SHFileOperation.)
Кошик - це приблуда для дурнів, які не в змозі самостійно зрозуміти, що вони хочуть видалити. Кошиком править ОС, і поміщає в неї видаляються функцією ОС (DeleteFile) файли при відпо настроках "кошика".
Всі ці функції просто видаляють файл. А ось система, або зокрема 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
> Всі ці функції просто видаляють файл.
Ну ось бачите, Ви самі і відповіли на своє питання в [4]: "невірно що?".
Невірний Ваш відповідь на питання товариша "проходить повз".
А заяви щодо "приблуди для дурнів" - це вже, вибачте, зовсім не до місця.
> Ну ось бачите, Ви самі і відповіли на своє питання в [4]: "невірно що?".
Я не відповідав на своє питання, тому що невірно [3].
Суперечка безглуздий.
Ви читаєте одну пропозицію, і пропускаєте друге. Так само як і з хімією.
> "Приблуди для дурнів" - це вже, вибачте, зовсім не до місця.
ще як до місця.
> Невіруючих Ваш відповідь на питання товариша "проходить повз".
цитую питання:
"Видалення файлу"
DeleteFile () F1
Erase () F1
Щоб повністю відбити у Вас можливість заперечити додам:
видалити групу файлів в кошик можна. тому що "корзина" це каталог, а дієслово "видалити" подразумаевает витирання файлу з диска зі звільненням дискового простору, займається цим файлом. В кошик можна перемістити. Видалити ж файл можна процедурами:
begin. end якщо я вас запитаю: "Як поховати дитину в школу"
Ви мені запропонуєте купити труну або чекати шкільного автобуса?
DeleteFile () F1
Erase () F1
Ви неуважні.
Питання було якраз як видалити в корзину.
Ви неуважні подвійно.
читати [10]
Я напевно тупий, [10] я не зрозумів.
Але Вас я дійсно не зрозумів. Спочатку Ви стверджуєте що DeleteFile при соотв налаштування ОС видалить файл в кошик, потім говорите що кошик не потрібна, потім говорите що не було в питанні ніякої кошика і якби вона була Ви б відповіли правильно.
Чи не Вам вирішувати чи потрібна кошик. Можете тільки для себе вирішити це питання, але не за всіх.
Але якщо самі бачите що відповіли неправильно навіщо Ви впираєтеся. Навіть Майстри іноді помиляються - але вони визнають свої помилки. А Ви сосвоімі завзятістю виглядаєте нерозумно.
> Я напевно тупий, [10] я не зрозумів.
Я так не говорив, Ви це самі сказали
> Але Вас я дійсно не зрозумів.
Розкладаючи по поличках.
> Спочатку Ви стверджуєте що DeleteFile при соотв налаштування ОС видалить файл в кошик
Так при відповідній настройці ОС, а саме Unerase Wisard і Extented Recycle bin видаляються файли дійсно не видаляються, а поміщаються в корзину.
> Потім говорите що кошик не потрібна
Так кошик не потрібна, тим хто хоч трохи відповідає за свої дії і розуміє, що кошик невиправдано відгризає корисний простір на HDD і гальмує роботу видалення.
> Потім говорите що не було в питанні ніякої кошика і якби вона була Ви б відповіли правильно.
Цього я не говорив, нічого мені приписувати якусь вигадану вами дурницю. Я говорив ось що:
видалити групу файлів в кошик можна. тому що "корзина" це каталог, а дієслово "видалити" подразумаевает витирання файлу з диска зі звільненням дискового простору, займається цим файлом. В кошик можна перемістити.
Якщо ви не зрозуміли, Repeat перечитайте ще раз Until clear.
> Чи не Вам вирішувати чи потрібна кошик.
Не мені, я просто вказав для кого потрібна кошик.
> Можете тільки для себе вирішити це питання, але не за всіх.
Для себе вирішив. Вам щось не подобається в тому як я вирішив це питання для себе?
> Але якщо самі бачите що відповіли неправильно
Це ви бачите, що я нібито відповів неправильно.
> Навіщо Ви впираєтеся.
Тому в даному випадку не сумніваюся у своїй правоті. Якщо ви сумніваєтеся, тоді перечитайте [9], поки теж не перестанете сумніватися.
> Навіть Майстри іноді помиляються - але вони визнають свої помилки. А Ви сосвоімі завзятістю виглядаєте нерозумно.
Я не збираюся визнавати помилки, так де її не допускав. Так ви маєте рацію, я виглядаю нерозумно коли витрачаю час на цей форум, ну що ж поробиш шкідлива звичка вже. Міг би зайнятися чимось корисним.
> # XA0; Unerase Wisard і Extented Recycle bin
Не думаю що у багатьох ці штуки є. Видалення DeleteFile буде видаляти в корзину якщо вони встановлені, це більш ніж відповідні налаштування ОС це відповідне ПО.
За допомогою SHFileOperation з прапором FOF_ALLOWUNDO можна видалити файл в кошик, якщо вона включена.
Так що все ж згоден з [3].
Знімаю кепку за працю в пошуках посилання. ;)
Ну що ж, recycle bin розробка MS, вони мають право застосовувати будь-яку термінологію щодо їхнього продукту. Мені нічого не залишається окрім як принести вибачення за моральну шкоду, і визнати, що був не правий.
ps: Delete а file into recycle bin, читається все ж приблизно як [10].
Ну да ладно, самі сперечайтеся, як файло затирати, а я ска; у, як чекнуть файли обробити. Треба так:
_def [eND] er # XA0; (30.10.04 8:08) [17]
with ListView, Items do
for I: = 0 to Count - 1 do
# XA0; if Items [I] .Checked then
Згоден, можна так.
# XA0; # XA0; DeleteFile (Items [I] .Caption);
Уже ж домовилися SHFileOperation
Не варто видаляти по одному. Замість цього слід додати всі в список.
with ListView.Items do
# XA0; for I: = 0 to Count - 1 do
# XA0; # XA0; # XA0; if Item [I] .Checked then
# XA0; # XA0; # XA0; # XA0; SFrom: = SFrom + Items.Strings [I] + # 0;
# XA0; if SFrom = "" then Exit;
# XA0; SFrom: = SFrom + # 0;
# XA0; FillChar (Op, SizeOf (Op), 0);
# XA0; with Op do
# XA0; # XA0; begin
# XA0; # XA0; # XA0; Wnd: = Handle;
# XA0; # XA0; # XA0; pFrom: = @SFrom [1];
# XA0; # XA0; # XA0; wFunc: = FO_DELETE
# XA0; # XA0; # XA0;
# XA0; # XA0; # XA0; # XA0; fFlags: = FOF_ALLOWUNDO or fFlags;>
# XA0; # XA0; end
# XA0; SHFileOperation (Op);
Під "чекнуть" файлами я мав на увазі елементи ListView з властивістю Checked
І я типу не найрозумніший - чоловік запитав одне, а ви тут розвели базар не в тему