#0
by СЕсин
Всем привет! Если зайти в свойства файла, там есть поле "Размер", а есть "Размер на диске". Стандартная функция 1С "Файл.Размер" возвращает как раз первое свойство. А мне очень нужно определить именно "Размер на диске". Пробовал через эту штуку с тем же результатом: Подскажите пожалуйста, возможно ли решить данную задачу? И если возможно, то как? На законный вопрос "а нафига?", поясню: Мне нужно определить, докачался ли файл? Файл качает сторонняя программа GetMedia. Я периодически хочу проверять размер файла, чтобы понять, докачался или нет. Но стандартной функцией он возвращает именно "Размер", а не "Размер на диске". И все время пока идет закачка, "Размер" равен, то 0, то какому-то произвольному значению. И это значение может по 5 минут висеть одно и то же, если файл большой. А вот если отслеживать "Размер на диске", то это значение плавно растет. Подойдет также какой-нибудь альтернативный способ определения, скачался файл или нет. Более красивых вариантов, к сожалению, я не придумал.
#1
by СЕсин
Да, также я пробовал отслеживать таким образом: Но эта дата тоже нестабильно работает. То постоянно меняется, то висит на одном значении до окончания загрузки. И как бы определить, последний раз она поменялась или нет, х.з. как.
#3
by СЕсин
например какой? Ну и тут ещё какая фигня. Как можно догадаться, я пытаюсь автоматизировать скачивание торрентов. GetMedia я выбрал, т.к. там есть нормальный встроенный поиск. И у меня в принципе все получилось, скачивает то что нужно, но понять, докачался файл или нет, я не могу.
#5
by Aleksey
Не всегда плавно растет. Качалка вполне может и сразу разметит место на диске под файл
#6
by Jump
Размер файла - сколько байт содержит файл. Размер на диске - сколько места на диске занимает файл. Эти размеры никак не связаны. >>Я периодически хочу проверять размер файла, чтобы понять, докачался или нет Для этих целей вам нужен размер файла. А не размер файла на диске. Допустим один и тот же видеофильм может занимать на диске 20гб, или 0мб. Или текстовый документ размером 20байт может занимать на диске 8мб.
#7
by Jump
Т.е вам нужен именно размер файла для этих целей, а размер занимаемый файлом на диске для этих целей бесполезен абсолютно.
#8
by Кирпич
А если попробовать переместить файл? Может, если качается, не даст переместить, а если скачался, то даст?
#10
by Jump
Если вам нужно проверить что файл докачался - лучше всего сравнить хэш. Это надежно и гарантированно. В крайнем случае можно проверить размер, это менее надежно. Разумеется перед тем как проверять размер нужно остановить работу с файлом. Пока он открыт на запись трудно получить его реальный размер. Я бы постоветовал вам пользоваться готовыми утилитами для скачивания, которые сами все делают - например сказали скачать, после скачивания переместить, или выполнить команду. И все.
#11
by СЕсин
я действовал эмпирическим путем - во время закачки заходил в свойства и смотрел, какая цифра меняется, а какая стоит на месте. Поэтому и привязался к этому "размеру на диске". Вы пишите "Для этих целей вам нужен размер файла." - так он один и тот же всю дорогу. Возможно, я не совсем уловил мысль. wget, aria2 - они могут качать торрент. А найти торрент по заданным параметрам и имени могут? Я понял, что не могут. Поправьте меня пожалуйста, если я ошибаюсь. Если с помощью wget, aria2 можно именно найти, что требуется, конечно, буду копать в этом направлении. Переместить не дает, программа его держит, пока он в списке загрузки находится. Короче, я бы и раз воспользоваться чем-то более элегантным, но как там дела обстоят с поиском торрентов?
#14
by Dragner
Это теория про Размер и Размер На Диске, но там есть упоминание про GetCompressedFileSize может наведёт на мысль.
#15
by Jump
wget - только фтп и хттп. aria2 в основном торренты, но может также и фтп и хттп, причем одновременно с торрентом. >>А найти торрент по заданным параметрам и имени могут? Это как? Не слышал о таком. Торренты ищутся не по заданым параметрам, а по торрентфайлу, или металинку. А размер на диске ничего общего с реальным размером файла не имеет.
#16
by СЕсин
"А найти торрент по заданным параметрам" - я сделал небольшой макрос, который вбивает в GetMedia название фильма и ставит его на скачивание. Таким образом можно программно скачать какой-то фильм, Торрентфайла которого у нас пока нет. Просто по названию. Способ, конечно, корявый, но он работает. Для полного счастья мне нужно отследить завершение скачивания )
#18
by СЕсин
Я знаю куда качаю. Выполняю макрос, указав название фильма. Когда вижу что в папке, куда идет закачка, появляется файл, пытаюсь отследить когда его размер перестанет расти. После окончания собираюсь перемещать фильм в другую папку, чтобы очистить место для новой закачки. Да тут, нет никакой защиты. Одновременно качается только один файл. Меня это устраивает.
#19
by Jump
Ну вы не знаете размер файла. Как вы можете отследить что он скачался? А то что перестал расти - интернет пропал, или пиры отвалились.
#20
by Fragster
если качаются торренты - используйте transmission, который сделает всё сам, причем из консоли
#23
by trdm
Попробовать переименовать файл. Если файл переименовывается, значит докачан и "отпущен".
#25
by Fragster
поиск фильмов по названию можно другими методами сделать, вплоть до 1сных httpзапросов к трекерам (ну, или тем же wgetом)
#26
by Jump
Я в курсе. Автор хочет чтобы качалка проверяла. А вообще я для торрентов трансмишн не использую. Если с ГУИ - то юторрент. Если консольный - aria2
#27
by Fragster
у меня оно вообще на роутере... кидаю файл в шару, он пропадает, через некоторое время в шаре появляется результат (уже полностью скачанный)
#28
by Fragster
занимается этим трансмишн как раз. по такой схеме автору остается только чем-то положить файл в папку и мониторить эту папку на появление результата
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как уменьшить размер exe файла при работе с Visual Studio 2003
- Как в 1С 7.7 определить количество рабочих дней между заданными датами?
- Как определить что за НАСП ключ?
- Как програмно определить Роль и Интерфейс пользователя?
- Возможно ли определить количество пользователей работающих с ИБ в настоя...
- Проблема загрузки в SQL базу 1С8 файла ИБ (base.dt). размер файла > 2Gb
- v8: ЗУП. код вычета 503 , размер вычета 4000 , данные в регистре размер вычетов есть, но..
- Как определить программно определить в какой точке завершился бизнес процесс?
- Помогите определить какой размер этикеток у принтера Zebra LP 2824 Plus
В этой группе 1С
- Отправка файла из 1с в Telegram
- Кто-нибудь работает с google BigQuery? Нужен пример загрузки данных в таблицу
- Ошибка в настройках исходящей почты.SMTP, код ошибки 25
- Ошибка арифметического переполнения при преобразовании numeric к типу данных num
- Болванка внешнего отчета
- БГУ 2.0.44.22 некорректно работает печатка ОС инв-52
- Печатная форма не доступна
- 1c 8.3 УФ, Выпадающий список, запрет выбора значение с помощью Стрелок ВверхВниз
- Автоматический обмен РИБ через FTP
- ЗУП увольнение, долг за работником, дата получения дохода для НДФЛ
- Обращение к Web-сервису 1С через MSXML2.ServerXMLHTTP
- УТ 10.3 В настройках отчетов не сохраняются настройки
- Если прием не состоялся...
- Выгрузка / загрузка настроек универсального отчета в хранилище значений
- Текущая страница - почему не меняется, а потом модифицированность сбрасывается
- не работает DLL склонения
- Ошибка при вызове конструктора (COMОбъект) : Интерфейс не поддерживается
- Клиент-серверное взаимодействие, на сервере без контекста
- JavaScript и 1с
- Индексация заработка в период отпуска ЗУП 2.5.107.1