|
Как определить "Размер файла на диске", а не просто "Размер файла"? | ☑ | ||
---|---|---|---|---|
0
СЕсин
16.08.16
✎
17:13
|
Всем привет! Если зайти в свойства файла, там есть поле "Размер", а есть "Размер на диске". Стандартная функция 1С "Файл.Размер()" возвращает как раз первое свойство. А мне очень нужно определить именно "Размер на диске".
Пробовал через эту штуку с тем же результатом: FSO = Новый COMОбъект("Scripting.FileSystemObject"); Подскажите пожалуйста, возможно ли решить данную задачу? И если возможно, то как? На законный вопрос "а нафига?", поясню: Мне нужно определить, докачался ли файл? Файл качает сторонняя программа GetMedia. Я периодически хочу проверять размер файла, чтобы понять, докачался или нет. Но стандартной функцией он возвращает именно "Размер", а не "Размер на диске". И все время пока идет закачка, "Размер" равен, то 0, то какому-то произвольному значению. И это значение может по 5 минут висеть одно и то же, если файл большой. А вот если отслеживать "Размер на диске", то это значение плавно растет. Подойдет также какой-нибудь альтернативный способ определения, скачался файл или нет. Более красивых вариантов, к сожалению, я не придумал. |
|||
1
СЕсин
16.08.16
✎
17:17
|
Да, также я пробовал отслеживать таким образом:
FSO = Новый COMОбъект("Scripting.FileSystemObject"); File = FSO.GetFile(ТекИмяФайла.Имя); ДатаИзменения = File.DateLastModified; Но эта дата тоже нестабильно работает. То постоянно меняется, то висит на одном значении до окончания загрузки. И как бы определить, последний раз она поменялась или нет, х.з. как. |
|||
2
hitodom
16.08.16
✎
17:18
|
качать качалкой, что отдает процент скачивания
|
|||
3
СЕсин
16.08.16
✎
17:20
|
(2) например какой? Ну и тут ещё какая фигня. Как можно догадаться, я пытаюсь автоматизировать скачивание торрентов. GetMedia я выбрал, т.к. там есть нормальный встроенный поиск. И у меня в принципе все получилось, скачивает то что нужно, но понять, докачался файл или нет, я не могу.
|
|||
4
Fragster
гуру
16.08.16
✎
17:28
|
wget или curl
|
|||
5
Aleksey
16.08.16
✎
17:30
|
(0) Не всегда плавно растет. Качалка вполне может и сразу разметит место на диске под файл
|
|||
6
Jump
16.08.16
✎
17:35
|
(0)Размер файла - сколько байт содержит файл.
Размер на диске - сколько места на диске занимает файл. Эти размеры никак не связаны. >>Я периодически хочу проверять размер файла, чтобы понять, докачался или нет Для этих целей вам нужен размер файла. А не размер файла на диске. Допустим один и тот же видеофильм может занимать на диске 20гб, или 0мб. Или текстовый документ размером 20байт может занимать на диске 8мб. |
|||
7
Jump
16.08.16
✎
17:37
|
Т.е вам нужен именно размер файла для этих целей, а размер занимаемый файлом на диске для этих целей бесполезен абсолютно.
|
|||
8
Кирпич
16.08.16
✎
17:38
|
А если попробовать переместить файл? Может, если качается, не даст переместить, а если скачался, то даст?
|
|||
9
Jump
16.08.16
✎
17:40
|
(3) wget, aria2
|
|||
10
Jump
16.08.16
✎
17:46
|
(3) Если вам нужно проверить что файл докачался - лучше всего сравнить хэш.
Это надежно и гарантированно. В крайнем случае можно проверить размер, это менее надежно. Разумеется перед тем как проверять размер нужно остановить работу с файлом. Пока он открыт на запись трудно получить его реальный размер. Я бы постоветовал вам пользоваться готовыми утилитами для скачивания, которые сами все делают - например сказали скачать, после скачивания переместить, или выполнить команду. И все. |
|||
11
СЕсин
16.08.16
✎
17:49
|
(6) я действовал эмпирическим путем - во время закачки заходил в свойства и смотрел, какая цифра меняется, а какая стоит на месте. Поэтому и привязался к этому "размеру на диске".
Вы пишите "Для этих целей вам нужен размер файла." - так он один и тот же всю дорогу. Возможно, я не совсем уловил мысль. wget, aria2 - они могут качать торрент. А найти торрент по заданным параметрам и имени могут? Я понял, что не могут. Поправьте меня пожалуйста, если я ошибаюсь. Если с помощью wget, aria2 можно именно найти, что требуется, конечно, буду копать в этом направлении. Переместить не дает, программа его держит, пока он в списке загрузки находится. Короче, я бы и раз воспользоваться чем-то более элегантным, но как там дела обстоят с поиском торрентов? |
|||
12
СЕсин
16.08.16
✎
17:50
|
*рад воспользоваться )
|
|||
13
hitodom
16.08.16
✎
17:56
|
(11)ищи одной софтиной, качай другими
|
|||
14
Dragner
16.08.16
✎
17:59
|
https://technet.microsoft.com/ru-ru/magazine/hh148159.aspx
Это теория про Размер и Размер На Диске, но там есть упоминание про GetCompressedFileSize может наведёт на мысль. |
|||
15
Jump
16.08.16
✎
18:03
|
wget - только фтп и хттп.
aria2 в основном торренты, но может также и фтп и хттп, причем одновременно с торрентом. >>А найти торрент по заданным параметрам и имени могут? Это как? Не слышал о таком. Торренты ищутся не по заданым параметрам, а по торрентфайлу, или металинку. А размер на диске ничего общего с реальным размером файла не имеет. |
|||
16
СЕсин
16.08.16
✎
18:10
|
(15) "А найти торрент по заданным параметрам" - я сделал небольшой макрос, который вбивает в GetMedia название фильма и ставит его на скачивание. Таким образом можно программно скачать какой-то фильм, Торрентфайла которого у нас пока нет. Просто по названию. Способ, конечно, корявый, но он работает. Для полного счастья мне нужно отследить завершение скачивания )
|
|||
17
Jump
16.08.16
✎
18:16
|
(16) Ну а как вы можете отследить окончания скачивания если не знаете что качаете?
|
|||
18
СЕсин
16.08.16
✎
18:20
|
(17) Я знаю куда качаю. Выполняю макрос, указав название фильма. Когда вижу что в папке, куда идет закачка, появляется файл, пытаюсь отследить когда его размер перестанет расти. После окончания собираюсь перемещать фильм в другую папку, чтобы очистить место для новой закачки.
Да тут, нет никакой защиты. Одновременно качается только один файл. Меня это устраивает. |
|||
19
Jump
16.08.16
✎
19:07
|
(18) Ну вы не знаете размер файла.
Как вы можете отследить что он скачался? А то что перестал расти - интернет пропал, или пиры отвалились. |
|||
20
Fragster
гуру
16.08.16
✎
23:52
|
(18) если качаются торренты - используйте transmission, который сделает всё сам, причем из консоли
|
|||
21
Jump
17.08.16
✎
09:33
|
(20) Поиск фильмов по названию?
|
|||
22
DES
17.08.16
✎
09:45
|
(0) dir file.ext > f.txt
Затем парсинг файла f.txt |
|||
23
trdm
17.08.16
✎
10:22
|
Попробовать переименовать файл. Если файл переименовывается, значит докачан и "отпущен".
|
|||
24
Serginio1
17.08.16
✎
10:25
|
Используй асинхронные методы. А вот откуда сам решай.
|
|||
25
Fragster
гуру
17.08.16
✎
11:53
|
(21) поиск фильмов по названию можно другими методами сделать, вплоть до 1сных httpзапросов к трекерам (ну, или тем же wgetом)
|
|||
26
Jump
17.08.16
✎
12:28
|
(25) Я в курсе.
Автор хочет чтобы качалка проверяла. А вообще я для торрентов трансмишн не использую. Если с ГУИ - то юторрент. Если консольный - aria2 |
|||
27
Fragster
гуру
17.08.16
✎
13:08
|
(26) у меня оно вообще на роутере... кидаю файл в шару, он пропадает, через некоторое время в шаре появляется результат (уже полностью скачанный)
|
|||
28
Fragster
гуру
17.08.16
✎
13:09
|
занимается этим трансмишн как раз. по такой схеме автору остается только чем-то положить файл в папку и мониторить эту папку на появление результата
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |