Вверх ↑
Этот топик читают: Гость
Ответов: 1173
Рейтинг: 49
#1: 2012-06-06 15:25:15 ЛС | профиль | цитата
Доброго дня! Возник такой вопрос: нужно следить за состоянием рабочего стола, точнее, отслеживать появление файлов, искать все файлы на раб. столе (пересчитывать их), затем сверяться с определённым количеством, т.е. файлов менее, например, 20 - ничего не делать, иначе начинать сортировку (перемещение файлов в папки в зависимости от расширения, не в этом суть). Проблема в том, что нужно отследить момент окончания создания/перемещения/копирования, иначе сортировка может начаться во время создания/перемещения/копирования, таким образом, могут возникнуть ошибки. Вставлять таймер - не подходит, файл может быть очень большой и перемещаться, скажем, минут 10. Пока что ничего умного в голову не пришло, может, у вас есть мысли, как сделать всё по-уму?
Неправильно описал проблему, дело в том, что перемещаться может несколько файлов сразу, но в системе это происходит последовательно, таким образом, DC видит изменение, FS считывает кол-во файлов, они сортируются, а тут раз! - "доперемещаются" остальные файлы, т.е. они остаются неотсортированными, получается косяк.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 258
Рейтинг: 2
#2: 2012-06-06 15:33:33 ЛС | профиль | цитата
Ex_, может искать окно с заголовками копирование и тд!
карма: 0

0
Ответов: 1173
Рейтинг: 49
#3: 2012-06-06 15:35:50 ЛС | профиль | цитата
Vovan, вариант, но надеюсь на более "правильное" решение
карма: 0

0
Ответов: 258
Рейтинг: 2
#4: 2012-06-06 15:41:45 ЛС | профиль | цитата
Ex_, но не просто окно с заголовком "копирование" а со строкой, которая кончается на "рабочий стол"
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#5: 2012-06-06 15:45:07 ЛС | профиль | цитата
Ex_ писал(а):
отслеживать появление файлов

Ex_ писал(а):
нужно отследить момент окончания создания/перемещения/копирования


%HiAsm%ElementsDelphiExampleFilesDirectoryChanges.sha
карма: 22

0
Ответов: 1173
Рейтинг: 49
#6: 2012-06-06 15:48:20 ЛС | профиль | цитата
Vovan писал(а):
но не просто окно с заголовком "копирование" а со строкой, которая кончается на "рабочий стол"
Это ясно. Ок, спасибо, пока возьмём на вооружение
------------ Дoбавленo в 15.48:
nesco, неправильно описал проблему, дело в том, что перемещаться может несколько файлов сразу, но в системе это происходит последовательно, таким образом, DC видит изменение, FS считывает кол-во файлов, они сортируются, а тут раз! - "доперемещаются" остальные файлы, т.е. они остаются неотсортированными, получается косяк.
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#7: 2012-06-06 16:14:07 ЛС | профиль | цитата
Ex_ писал(а):
таким образом, DC видит изменение

DC выдает изменения только после того, когда они уже произошли. Если файл находится в стадии изменения, то DC ничего не выдаст
карма: 22

0
Ответов: 1173
Рейтинг: 49
#8: 2012-06-06 16:22:48 ЛС | профиль | цитата
nesco писал(а):
DC выдает изменения только после того, когда они уже произошли. Если файл находится в стадии изменения, то DC ничего не выдаст
Я понимаю, проблема описана в моём предыдущем посте.
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#9: 2012-06-06 16:41:16 ЛС | профиль | цитата
Ex_ писал(а):
проблема описана в моём предыдущем посте

Ну докопировался файл, DC отметила, но и сортируй его куда надо, че мешает-то, никак не въеду
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#10: 2012-06-06 16:45:52 ЛС | профиль | цитата
Ex_ писал(а):
перемещаться может несколько файлов сразу
схемку бы. Очень хочется посмотреть как это "сразу".
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#11: 2012-06-06 16:52:07 ЛС | профиль | цитата
Единственное, что не совсем понятно как можно реализовать такое -- файл перемещается при сортировке, и сунули на копирование такой же файл, но из другого места, на перезапись Ситуация малореальна, но возможна
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#12: 2012-06-06 17:04:34 ЛС | профиль | цитата
Ex_ писал(а):
Я понимаю
Ни фига ты не понимаешь если
Ex_ писал(а):
файл может быть очень большой и перемещаться, скажем, минут 10.
При перемещении из одной папки в другую (на одном и том же диске) никто никуда файл физически не перемещает. Как он был, например, в ХХХ секторе диска так он там и остался.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#13: 2012-06-06 17:08:07 ЛС | профиль | цитата
Tad писал(а):
При перемещении из одной папки в другую (на одном и том же диске) никто никуда файл не физически не перемещант. Как он был, например, в ХХХ секторе диска так он там и остался

Это же прописная истина работы файловой системы -- на одном диске перписывается только имя файла из одной папки в другую
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#14: 2012-06-06 17:18:34 ЛС | профиль | цитата
nesco, так и я же про "прописные истины".
Ну не знает он разницы между Copy и Move. У него Move до 10 минут.
Сосём проблему из пальца на ровном месте.

А про порядок в следовании событий вообще видно ему неизвестно.
И про флаги тоже.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#15: 2012-06-06 17:23:36 ЛС | профиль | цитата
Tad писал(а):
У него Move до 10 минут

Такое может быть только на разных дисках, на одном диске такого не будет, именно диске, а не носителе -- при перемещении файлов между виртуальным диском и основным, происходит копирование с удалением, хотя файл может находится на одном носителе, а виртуальный диск может быть папкой этого же основного диска, на этом же носителе
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)