Доброго дня! Возник такой вопрос: нужно следить за состоянием рабочего стола, точнее, отслеживать появление файлов, искать все файлы на раб. столе (пересчитывать их), затем сверяться с определённым количеством, т.е. файлов менее, например, 20 - ничего не делать, иначе начинать сортировку (перемещение файлов в папки в зависимости от расширения, не в этом суть). Проблема в том, что нужно отследить момент окончания создания/перемещения/копирования, иначе сортировка может начаться во время создания/перемещения/копирования, таким образом, могут возникнуть ошибки. Вставлять таймер - не подходит, файл может быть очень большой и перемещаться, скажем, минут 10. Пока что ничего умного в голову не пришло, может, у вас есть мысли, как сделать всё по-уму?
Неправильно описал проблему, дело в том, что перемещаться может несколько файлов сразу, но в системе это происходит последовательно, таким образом, DC видит изменение, FS считывает кол-во файлов, они сортируются, а тут раз! - "доперемещаются" остальные файлы, т.е. они остаются неотсортированными, получается косяк.
Этот топик читают: Гость
Ответов: 1173
Рейтинг: 49
|
|||
карма: 0 |
|
Google
vip
|
#1.1контекстная реклама от партнеров
|
Ответов: 258
Рейтинг: 2
|
|||
Ex_, может искать окно с заголовками копирование и тд!
|
|||
карма: 0 |
|
Ответов: 1173
Рейтинг: 49
|
|||
Vovan, вариант, но надеюсь на более "правильное" решение
|
|||
карма: 0 |
|
Ответов: 258
Рейтинг: 2
|
|||
Ex_, но не просто окно с заголовком "копирование" а со строкой, которая кончается на "рабочий стол"
|
|||
карма: 0 |
|
Разработчик
Ответов: 26061
Рейтинг: 2120
|
|||
Ex_ писал(а): отслеживать появление файловEx_ писал(а): нужно отследить момент окончания создания/перемещения/копирования%HiAsm%ElementsDelphiExampleFilesDirectoryChanges.sha |
|||
карма: 22 |
|
Ответов: 1173
Рейтинг: 49
|
|||
Vovan писал(а): но не просто окно с заголовком "копирование" а со строкой, которая кончается на "рабочий стол"------------ Дoбавленo в 15.48: nesco, неправильно описал проблему, дело в том, что перемещаться может несколько файлов сразу, но в системе это происходит последовательно, таким образом, DC видит изменение, FS считывает кол-во файлов, они сортируются, а тут раз! - "доперемещаются" остальные файлы, т.е. они остаются неотсортированными, получается косяк. |
|||
карма: 0 |
|
Разработчик
Ответов: 26061
Рейтинг: 2120
|
|||
Ex_ писал(а): таким образом, DC видит изменениеDC выдает изменения только после того, когда они уже произошли. Если файл находится в стадии изменения, то DC ничего не выдаст |
|||
карма: 22 |
|
Ответов: 1173
Рейтинг: 49
|
|||
nesco писал(а): DC выдает изменения только после того, когда они уже произошли. Если файл находится в стадии изменения, то DC ничего не выдаст |
|||
карма: 0 |
|
Разработчик
Ответов: 26061
Рейтинг: 2120
|
|||
Ex_ писал(а): проблема описана в моём предыдущем постеНу докопировался файл, DC отметила, но и сортируй его куда надо, че мешает-то, никак не въеду |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Ex_ писал(а): перемещаться может несколько файлов сразу |
|||
карма: 25 |
|
Разработчик
Ответов: 26061
Рейтинг: 2120
|
|||
Единственное, что не совсем понятно как можно реализовать такое -- файл перемещается при сортировке, и сунули на копирование такой же файл, но из другого места, на перезапись Ситуация малореальна, но возможна
|
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Ex_ писал(а): Я понимаюEx_ писал(а): файл может быть очень большой и перемещаться, скажем, минут 10. |
|||
карма: 25 |
|
Разработчик
Ответов: 26061
Рейтинг: 2120
|
|||
Tad писал(а): При перемещении из одной папки в другую (на одном и том же диске) никто никуда файл не физически не перемещант. Как он был, например, в ХХХ секторе диска так он там и осталсяЭто же прописная истина работы файловой системы -- на одном диске перписывается только имя файла из одной папки в другую |
|||
карма: 22 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
nesco, так и я же про "прописные истины".
Ну не знает он разницы между Copy и Move. У него Move до 10 минут. Сосём проблему из пальца на ровном месте. А про порядок в следовании событий вообще видно ему неизвестно. И про флаги тоже. |
|||
карма: 25 |
|
Разработчик
Ответов: 26061
Рейтинг: 2120
|
|||
Tad писал(а): У него Move до 10 минутТакое может быть только на разных дисках, на одном диске такого не будет, именно диске, а не носителе -- при перемещении файлов между виртуальным диском и основным, происходит копирование с удалением, хотя файл может находится на одном носителе, а виртуальный диск может быть папкой этого же основного диска, на этом же носителе |
|||
карма: 22 |
|