powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удаление самой старой папки - Delphi
43 сообщений из 43, показаны все 2 страниц
Удаление самой старой папки - Delphi
    #39563466
suzuki-bandit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемые программисты
Имеется такая задача
Есть 3 папки
как показано на скрине
Данные папки не трудно догадаться созданы соответственно:
2017-12-01
2017-11-24
2017-11-17
Я каждую неделею удалаю самую старую папку
т.е. в эту неделю я удалю 2017-11-17 т.к. она самая старая
как мне программно найти среди папок самую старую и удалить ее
путь к ним скажем такой такой:

C:\папки\ и тут они лежат


Каждую недю создается новая папка
т.е. на след недели будет папка 2017-12-08 и самой старой уже будет 2017-11-24
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563475
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удаляй
кто ж тебе мешает
вопрос то какой?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563477
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто отсортируй строки.

Например через TStringList.Sort.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563480
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suzuki-bandit,

не слушай этих лентяев. Пузырьком сортируй.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563500
suzuki-bandit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример имеется??
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563502
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, мне нужно сложить 2+2. Киньте пример, пожалуйста.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563504
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К слову - лучше делать на Power Shell. Delphi тут зачем? Bat вроде бы так не может, а то бы и им.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563551
Glays
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563570
suzuki-bandit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, помогли товарищи
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563572
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonК слову - лучше делать на Power Shell. Delphi тут зачем? Bat вроде бы так не может, а то бы и им.
Да неужто?

Код: plaintext
1.
2.
3.
dir /b | sort    - по имени
dir /b | sort /r - по имени (в обратном порядке)
dir /b /od       - по дате (старые сверху)
dir /b /o-d      - по дате (новые сверху)
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563573
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

и?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563576
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonalekcvp,
и?
Ну вдруг вам пригодится, раз вы не знали :)
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563601
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что мне поможет - дело десятое, задачу решить как поможет? :)
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563603
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suzuki-bandit,

Тебе нужно
- найти список папок в заданной папке.
- Определить дату создания каждой из этих папок и найти самую раннюю дату
- удалить эту папку.
По поводу дат советую почитать о формате дат и времени в Дельфи.
Для работы с папками и файлами в более новых версиях Дельфи есть удобные классы. Для директории вот:
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.IOUtils.TDirectory
С его помощью можно решить все 3 задачи, кроме определения самой ранней даты. Найти самую раннюю придется самостоятельно. Можно это сделать, просто перебрав все директории по очереди.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563643
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s62Определить дату создания каждой из этих папок и найти самую раннюю датуДа у него же в названии дата, что хорошо.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563688
suzuki-bandit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s62suzuki-bandit,

Тебе нужно
- найти список папок в заданной папке.
- Определить дату создания каждой из этих папок и найти самую раннюю дату
- удалить эту папку.
По поводу дат советую почитать о формате дат и времени в Дельфи.
Для работы с папками и файлами в более новых версиях Дельфи есть удобные классы. Для директории вот:
http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.IOUtils.TDirectory
С его помощью можно решить все 3 задачи, кроме определения самой ранней даты. Найти самую раннюю придется самостоятельно. Можно это сделать, просто перебрав все директории по очереди.
Как найти списмок папок в заданной папке???
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563695
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suzuki-bandit,


Здесь
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563697
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suzuki-bandit,

нужна визуальная программа ?
ос виндовс ?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563704
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открываешь папку в проводнике > для сортировки кликаешь по колонке Имя > удаляешь последнюю в списке папку
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563709
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, в программе на скрине нет сортировки по колонке Name ?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563716
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удалять самую старую папку по имени - это феерично
а завтра поменяешь алгоритм формирования имени и что?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563735
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
считаешь, что надежнее по дате создания папки ?

а если, к примеру, эти папки ему по ФТП в хранилище приходят в один день, то и дата создания будет одна.
какую тогда удалим?

так что, тут самый надежный способ по имени.
алгоритм формирования имени правильный и не надо менять
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563743
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writerсчитаешь, что надежнее по дате создания папки ?

а если, к примеру, эти папки ему по ФТП в хранилище приходят в один день, то и дата создания будет одна.
какую тогда удалим?

так что, тут самый надежный способ по имени.
алгоритм формирования имени правильный и не надо менять

задача поставлена явно - удалить самую старую
тут делов на минуту - цикл FindFirst и все
не, давайте парсить имя!
которое наверняка уже и получено этим FindFirst и время там есть
ну удачи
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563751
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если ппака единственная ? Удалить ? :)
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563753
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVА если ппака единственная ? Удалить ? :)

не читатель?
есть 3 папки
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563758
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая хорошая тема для муслякивания.

Давайте ее в "Новости Дельфи" попросим перенести?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563759
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear Penguin,

парсить имя еще никто не предлагал, ты первый
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563764
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost WriterTactical Nuclear Penguin,

парсить имя еще никто не предлагал, ты первый


это где я такое предлагал?
предлагали другие тут - сортировку - а это опирается на разбор имени файла - parse по английски
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563774
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear Penguinудалять самую старую папку по имени - это феерично
а завтра поменяешь алгоритм формирования имени и что?Алгоритм формирования имени поменять может только идиот. Это я даже не знаю, с чем сравнить. Взял, и поменял для борща ингредиенты - вместо помидоров огурцы положил.

А вот дата создания самой старой папки может оказаться не самой старой по ряду штатных случаев.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563778
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockВзял, и поменял для борща ингредиенты - вместо помидоров огурцы положилО, придумал лучшее сравнение.
Взял, и в бензиновый двигатель начал солярку заливать.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563786
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockTactical Nuclear Penguinудалять самую старую папку по имени - это феерично
а завтра поменяешь алгоритм формирования имени и что?Алгоритм формирования имени поменять может только идиот. Это я даже не знаю, с чем сравнить. Взял, и поменял для борща ингредиенты - вместо помидоров огурцы положил.

А вот дата создания самой старой папки может оказаться не самой старой по ряду штатных случаев.

ты не поверишь как много бывает идиотов
в том числе, если получив задание удалить самую старую папку программист начнет анализировать ее имя - он будет уволен в тот же день наверно по причине идиотизма
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563801
s62
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suzuki-banditКак найти списмок папок в заданной папке???
Я тебе дал ссылку на справку о классе TDirectory. Смотри, какие у него методы и свойства.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563854
Жытель Гондураса
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круто было бы всю папку с дельфями удалить
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563857
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
format /u и никаких мучений выбора...
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39563914
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear Penguinв том числе, если получив задание удалить самую старую папку программист начнет анализировать ее имя - он будет уволен в тот же день наверно по причине идиотизма
Смотря что понимать под "старая".
Если я сделал две папки - 170105 и 170106, то для меня "старой" будет всегда 170105, и мне пофиг на всё остальное. Я так придумал, значит так и есть.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39564043
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tactical Nuclear PenguinYuRockпропущено...
Алгоритм формирования имени поменять может только идиот. Это я даже не знаю, с чем сравнить. Взял, и поменял для борща ингредиенты - вместо помидоров огурцы положил.

А вот дата создания самой старой папки может оказаться не самой старой по ряду штатных случаев.

ты не поверишь как много бывает идиотов
в том числе, если получив задание удалить самую старую папку программист начнет анализировать ее имя - он будет уволен в тот же день наверно по причине идиотизма
Правильно! Поэтому надо завести каталог в xml, где писать папки и даты до которых они остаются актуальными, потом по списку удалять просроченное :)
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39564057
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

а почему в xml ?

вот еще веселый вариант: сразу в планировщике создавать задание на удаление файла через неделю. и не важно какое имя у него.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39564069
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ghost Writeralekcvp,
а почему в xml ?

Потому что модно и молодёжно! Или вы предлагаете JSON? :)
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39564071
Ghost Writer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю, БД тут будет в самый раз. Желательно в облаке. Или простой текстовый файл.
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39564105
Dmitri Krizhanovski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
uses
  System.IOUtils, System.Types, System.Generics.Collections;

procedure DeleteOldDirectory(ARootFolder: string);
var
  Directories: TStringDynArray;
begin
  {получить список}
  Directories := TDirectory.GetDirectories(ARootFolder);

  {сортировать }
  TArray.Sort<string>(Directories);

  {удалить первую в списке папку}
  if Length(Directories) > 0 then
    TDirectory.Delete(Directories[0]);
end;


p.s. Знаю, знаю...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Удаление самой старой папки - Delphi
    #39989799
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос по сортировке TStringDynArray
В массиве хранятся три значения - полные пути к файлам.

Код: plaintext
1.
2.
d:\objects\1724\402136_1.jpg
d:\objects\1724\402136_2.jpg
d:\objects\1724\_mainphoto_402136_3.jpg
Задача простая: сделать последний файл первым.
В Проводнике Винды я вижу, что файл _mainphoto_402136_3.jpg является первым.

Смотрю отладчиком, что до строки
Код: pascal
1.
TArray.Sort<string>(arrFiles);


что после строки - ничего не меняется :(

как отсортировать массив TStringDynArray?
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39989802
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11как отсортировать массив TStringDynArray?

Придётся скормить сортировке такую же безумную функцию сравнения, какую использует винда
для файлов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Удаление самой старой папки - Delphi
    #39989807
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но StringList.sort работает нормально

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TForm1.Button1Click(Sender: TObject);
Var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Text := Memo1.Lines.Text;
    sl.Sort;
    Memo1.Lines.Text := sl.Text;

  finally
    sl.Free;

  end;
end;
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Удаление самой старой папки - Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]