Не могу найти скачанный файл с торрента

Обновлено: 07.07.2024

Торренты зачастую являются единственным способом скачать фильм, музыку, игру или программу на компьютер. Для скачивания с торрентов наиболее используемая программа это uTorrent. У неё есть недостатки, например, реклама в бесплатной версии. Но тем не менее, если нет желания разбираться в альтернативных клиентах, то uTorrent – хорошая программа, я и сам ей пользуюсь.

Что значит ошибка [системе не удается найти указанный путь]

Ничего страшного, если в какой-то момент времени uTorrent перестал работать и показывает ошибку «системе не удается найти указанный путь. (ReadFromDisk)» . Эта ошибка означает, что:

  • Не существует папка для загрузки файлов торрента
  • Неправильное имя торрента

Ошибка могла появиться, если вы использовали для записи диск, которого теперь нет в системе, папка была переименована/удалена либо у вас пропал к ней доступ. Такое могло произойти, если вы ранее выбрали папку загрузки на сменном накопителе (USB-флэшке), но сейчас она не подключена. Или вы пользовались папкой «D:\Downloads\» , а потом забыли, что теперь она находится по пути «C:\Downloads» , т.е. на другой букве диска. Воспользуйтесь советами ниже, чтобы восстановить работоспособность программы.

Для начала, неплохо бы увидеть проблему. Для этого нажмите на проблемный торрент и посмотрите путь загрузки файлов на вкладке «Информация» :

путь загрузки торрента

Если старое расположение невозможно вернуть, то будем указывать системе правильный путь. Нажмите по торренту правой кнопкой и выберите пункт «Дополнительно -> Загружать в …»

загружать по другому пути

Выберите любую другую удобную и существующую папку на диске, где есть достаточно свободного места. Важно не писать имя папки вручную, а выбрать её через «три точки» , чтобы исключить ошибку ввода. Программа uTorrent перенесёт торрент по новому пути, и всё должно заработать. Не забудьте повторно включить (активировать) торрент!

Этот метод работает для уже добавленных торрентов, но, скорее всего, все новые торренты будут появляться с такой же ошибкой. Если это так, то нужно изменить пути по-умолчанию:

Зайдите в «Настройки -> Настройки программы»

  • Перейдите в раздел «Папки»
  • Поставьте галочку «Помещать загружаемые файлы в»
  • И выберите существующую папку на жёстком или SSD-диске

папки загрузок

Если ничего не помогло

Бывает, что проблема не из-за несуществующего пути. В таком случае остаётся несколько вариантов на проработку:

Протокол BitTorrent появился в начале 2000-х годов, но тогда еще мало кто мог оценить его возможности. Сегодня технология BitTorrent используется множеством приложений, но ассоциируется она прежде всего с uTorrent — самым популярным клиентом для скачивания контента с торрент-трекеров. Ниже мы дадим инструкцию по скачиванию файлов с ее помощью, а заодно расскажем какие существуют способы поиска контента, который можно скачать через uTorrent.

 как искать торренты яерз программу мбторрент

Скачивание торрент файлов через uTorrent

 как настроить папки загрузки

Перед тем как приступать к работе с uTorrent, рекомендуется выполнить некоторые настройки, в частности, указать папку, в которую будет скачиваться контент. Запустив клиент, нажмите Ctrl + P, чтобы открыть его настройки и переключитесь в раздел «Папки». Отметьте птичками чекбоксы «Помещать загружаемые файлы в:» и «Перемещать завершенные загрузки в:» и укажите в обоих полях папку для сохранения контента, лучше всего на пользовательском диске.

Далее придерживаемся следующего алгоритма:

  1. Посетите сайт торрент-трекера и найдите интересующий вас контент;
  2. Как правило, торрент-трекеры предлагают два способа скачивания — через торрент-файл и через магнитную ссылку. Если вы выберите первый вариант, на ваш ПК будет скачан небольшой файл с расширением TORRENT;
  3. Запустите его двойным кликом;
  4. В результате файл будет открыт в uTorrent, при этом вам будет предложено немедленно приступить к загрузке контента. Снимите, если надо, галки с тех входящих в торрент файлов, которые вам не нужны;
  5. Нажмите в открывшемся окне «OK», чтобы приступить к загрузке.
  6. Далее вы сможете наблюдать за прогрессом скачивания уже в основном окне uTorrent.

основное окно загрузки торрента

Если вы предпочтёте скачивание через магнитную ссылку, в окне браузера появится запрос на открытие клиента. Подтвердите открытие клиента нажатием кнопки «Открыть» и выполните действия, описанные в третьем пункте инструкции по скачиванию контента с использованием torrent-файла.

Плюсы и минусы скачивания контента через uTorrent

Плюсы:

  • Удобство и простота, скачивание можно приостановить и возобновить позже.
  • Множество источников контента

Минусы:

  • Высокая нагрузка на сеть, при скачивании через uTorrent резко падает скорость загрузки по другим каналам.
  • IP-адрес пользователя «светит» в интернет.
  • Назойливая реклама в бесплатной версии клиента. (ее можно отключить)
  • Некоторые торрент-трекеры требуют обязательной регистрации.

Использование uTorrent и аналогичных программ является быстрым, удобным и простым способом получить бесплатный доступ к самому разному контенту. Однако скачивать контент рекомендуется только с проверенных и хорошо зарекомендовавших себя трекеров, предоставляющих полный набор сведений о файлах.

Не так давно, а именно 5 июня хабрачеловек по имени alan008 задал вопрос. Чтобы не заставлять ходить за подробностями, приведу его здесь:

За несколько лет с разных трекеров (преимущественно c rutracker'а) разными клиентами (преимущественно uTorrent'ом) скачано много гигабайт разного полезного контента. Скачанные файлы впоследствии вручную перемещались с одного диска на другой, uTorrent их соответственно не видит. Многие .torrent файлы устарели сами по себе (например, велась раздача сериала путем добавления новых серий заменой .torrent файла).

Теперь сам вопрос: есть ли способ автоматически (не вручную) установить соответствие между имеющимися на компьютере .torrent файлами и содержимым, раскиданным по разным логическим дискам компьютера? Цель: удалить лишние (неактуальные) .torrent файлы, а для актуальных — поставить всё на раздачу. У кого какие идеи? :)

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

В обсуждениях сошлись на том, что если это и можно сделать, то только ручками. Мне же этот вопрос показался интересным, и после возвращения из отпуска я нашел время, чтобы в нем разобраться.

Потратив в общей сложности неделю на разбор формата .torrent-файла, поиск нормально работающей библиотеки для его парсинга, я приступил к написанию программы, которая позволит решить проблему затронутую в упомянутом вопросе.

  1. Получилось много, но не все.
  2. По формату файла .torrent будут даны лишь необходимые пояснения.
  3. Людей, чувствительных к временами некачественному коду, прошу меня заранее простить — я знаю, что многое можно было написать лучше, оптимальнее и безглючнее.

В данном случае имеется отличный способ решения — перекачать заново. Но мы же не ищем легких путей, да и предлагался такой вариант! Итак, будем решать задачу по сложному — не скачивать.

Приступая к написанию любой программы, необходимо сначала продумать хотябы базовый алгоритм ее работы. В нашем случае алгоритм, по сути, состоит из двух шагов:

  1. Найти и прочитать все .torrent-файлы;
  2. Найти в куче файлов тот, который соответствует описанному в .torrent, и переместить его в папку, соответствующую пути в .torrent.

Ну что же, приступим к решению поставленной задачи.

Ищем торренты и читаем их

Начнем с самого простого момента — чтения .torrent.

Строение .torrent-файла довольно простое — он представляет из себя словарь в формате bencode. В данном словаре нас интересует только пара с ключом info — блок описания файлов. Этот тоже является словарем и содержит в себе информацию об имени файлов, их размере. Кроме того, как многим известно, торрент хеширует файлы не целиком, а по кускам определенной длины, которая зависит от размера этих файлов. Информация о размере этого куска также содержится в словаре info.

Для хранения информации из прочитанного файла будем использовать такой класс Torrent :

Здесь поля хранят следующую информацию:

* Name — имя торрента (вообще говоря — имя папки или имя файла)
* Files — список файлов, которые нам надо будет в дальнейшем искать
* PieceLength — размер тех самых кусочков, хеш которых нам предстоит считать
* Hash — хеш строка всех файлов
* FileName — имя .torrent-файла на диске

Теперь стоит заострить внимание на строке хеша. Она составляется очень просто. Все файлы склеиваются в один (виртуально конечно) друг за другом, образуя при этом один БОЛЬШОООООООЙ воображаемый файл. В этом воображаемом файле берем кусок длины PieceLength , считаем SHA1 хеш, кладем хеш в строку, берем следующий кусок, считаем хеш, дописываем к концу строки с хешем предыдущего куска. Т. е. это обычная конкатенация хешей всех кусков.


Как мог заметить внимательный читатель, файл внутри класса — это не просто файл, а особый тип данных, в котором файл описывается некой конструкцией типа LostFile . Вот она:

Здесь все просто: имя файла и его размер. Кроме того этот класс содержит еще одно поле — BeginFrom . Оно описывает начало этого файла в том БОЛЛЬШОООООМ воображаемом файле. Он нужен, чтобы взять правильную часть файла для подсчета хеша — ведь длина файла очень редко кратна длине куска.


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

С помощью найденной на просторах интернета библиотеки BencodeLibrary мы читаем наш .torrent-файл и выкорчевываем из него блок info:


Далее из этого блока необходимо забрать данные об имени торрента, размере куска.


В этом месте мы передаем в метод `BencodingUtils.DecodeFile` вторым параметром информацию о кодировке. Это как раз тот момент, когда пришлось добавлять один метод в библиотеку — изначально codepage-437 была вшита в код.

Мы добрались до самого интересного момента в этой части — чтение информации о файлах. Торрент файлы бывают двух типов. Эти типы различаются тем, сколько файлов в них описано. При описании только одного файла в .torrent пишется его имя и размер.

Сначала разберем .torrent с описанием одного файла.


Тут все просто — имя торрента совпадает с именем файла. В случае, когда файлов в раздаче много, то в поле name пишется имя папки, в которую их надо положить (на самом деле может быть что угодно, но почему-то все пишут имя папки в которой эти файлы лежали при создании). Кроме того появляется список files в котором содержится информация о каждом файле: путь к нему и размер. Если размер — просто целое число, то путь к файлу представляет собой список из строк (имен директорий), пройдя по которым мы увидим этот файл.

Такое лучше пояснять на примере. Для файлов level_1\level_2_1\file_1.txt и level_1\level_2_2\file_2.txt , если мы захотим их раздавать, поле name будет содержать имя папки верхнего уровня ( "level_1" ), а список path для одного из файлов будет следующего вида: и для другого.

Нам для .torrent с несколькими файлами надо путь до каждого файла собрать в одну строку. Кроме того, надо хранить начало каждого файла в том БОЛЬШООООМ (не забыли, правда же?!):

Очень важно отметить, что порядок следования файлов в БОЛЬШОООООМ файле может быть любым, не обязательно по алфавиту или по размеру. Но порядок файлов в списке files будет точно таким же. Это ключевой момент для понимания принципа хеширования. Для примера, в ситуации, изображенной на первом рисунке, список файлов будет следующим: . Таким образом, считая хеш одного файла, мы знаем какой файл надо будет брать следующим.

Когда мы все это дело прочитали и посчитали — давайте создадим и вернем экземпляр Torrent :


Собирая теперь все чтение и разбор .torrent-файла воедино, получаем:

Теперь, когда у нас есть все необходимые данные, мы готовы к самому интересному — поиску наших файлов.

Ищем файлы

Мы вплотную подошли к реализации второго шага нашего алгоритма. Для этого будем использовать метод FindFiles такого вида:


Здесь files — список файлов, среди которых мы будем искать, destinationPath — путь до папки назначения, в которую будут помещаться найденные файлы.

Для каждого файла в .torrent мы будем перебирать все файлы из кучи и их сверять. Так как проверка хеша довольно затратна, то надо сначала отсеять явно левые файлы. Ну посудите сами: если я качал дискографию в .mp3 и переместил ее, то явно не менял расширения файлов. Имя мог поменять, а вот расширение вряд ли.


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


После того как проверка завершена, и мы удостоверились в соответствии файла искомому — перемещаем его в папку назначения с правильным путем. Перед перемещением будем естественно проверять наличие директории, а также проверим есть ли уже такой файл или нет. copyFile — переменная передаваемая с формы пользователем, ее назначение, я думаю, понятно всем.


Есть в коде выше три важных для пояснения момента. Начну с двух последних — вот эти строки:


Я посчитал вполне логичным убирать уже отсортированные файлы из рассмотрения, что позволит несколько сократить время выполнения поиска. Во второй строке есть конструкция .RemoveAt(i--); так как из коллекции убирается текущий элемент, то указатель надо сдвинуть назад, чтобы на следующей итерации цикла брался следующий элемент, а не через один.

Теперь про первый момент. Я знаю про наличие foreach для списка, но его при использовании нельзя модифицировать этот спикок, то есть мы не сможем удалять уже ненужные более элементы. Итак, собирая все выше описанное в один метод, имеем:

Ну вот! Самое вкусное.

Проверка хеша

Как видно из кода выше, для проверки хеша мы передаем имя файла на диске и номер файла в списке файлов торрента. Это надо для того, чтобы не запускать поиск в списке файлов, а сразу взять его по номеру, раз он известен (еще одно "+1" циклу for ).


Теперь приступим к реализации нашего метода проверки хеша. На данном этапе мы знаем номер в списке файлов торрента и путь до файла на диске

  1. Нет необходимости дополнительно искать на диске соседние файлы;
  2. Длина куска для хеширования очень редко превышает 2-4 МБ, что дает нам еще один плюс — с точки зрения производительности и времени, докачать такие файлы намного проще, чем искать их на диске.

Когда торрент-клиент проводит хеширование файлов, он считает хеш по порядку, однако бывает так, что нет одного или нескольких файлов. Тогда торрент-клиенту надо знать какой следующий кусок брать и откуда он будет начинаться в следующем имеющемся файле. Для вычисления двух этих цифр будем использовать следующий код, в котором переменная firstChunkNumber содержит номер первого куска, который полностью содержится в данном файле, а bytesOverhead — количество байт от начала файла до начала этого куска. Для лучшего понимания этого момента взгляните на поясняющий рисунок после кода.


Ответить на вопрос «Почему номер куска разный для случая, когда его начало совпадает с началом файла, и для случая, когда кусок лежит внутри?» предлагается самостоятельно.

Сейчас, зная номер куска мы должны взять его хеш из торрента с помощью такой конструкции:


После этого, надо прочитать кусок из файла и посчитать его хеш:


Ну и самое важное — его проверить. У меня, почему-то не захотел работать ни один из методов Equals() , которые я смог найти, поэтому проверяем так:


Собирая воедино сие творение возбужденного мозга, получим метод следующего содержания:

На этой прекрасной ноте, рассказ о методах и алгоритмах заканчивается, и мы переходим к рассказу о реализации в реальной жизни данного творения. Вполне понятно, что данная задача мной решалась не для того, чтобы решить, а для того, чтобы реализовать. Поэтому привожу на суд общественности мое творение, которое реализует все то, о чем написано выше.

Программа

В процессе работы, после окончания обработки очередного файла, выводится результат — имя .torrent-файла на диске и количество обработанных файлов.


Чтобы запустить сканирование, необходимо выбрать три директории (с файлами .torrent, с файлами для сортировки и папку для отсортированного), по желанию указать две опции и запустить сканирование.

По поводу производительности. Она пока что низкая: обработка 10 больших torrent-файлов заняла около 5 минут.

Так как работает приложение в один поток, то во время выполнения интерфейс подвисает, но я над этим работаю. Также хочу напомнить, что файлы малого размера (меньше 2-х мегабайт) не будут перемещены по причине отсутствия возможности проверки хеша. Вполне вероятны ложные срабатывания из-за того, что проверяется только один кусок под номером firstChunkNumber . Пока что проверять все куски слишком затратно, но в планах есть.

Не ищите торренты рекурсивно, если они собраны в корне диска.
Копирование может занять много времени, поэтому интерфейс может подвиснуть — не пугайтесь.

Так как писалась эта программа 4fun, то качество кода там немного не то, которое хотелось бы, но у меня оно работает. Данная программа не тестировалась, исправлялись только очевидные ошибки, поэтому могут быть, да что скрывать-то, есть скрытые баги. ИСПОЛЬЗУЯ ДАННУЮ ПРОГРАММУ, ВЫ ИСПОЛЬЗУЕТЕ ЕЕ НА СВОЙ СТРАХ И РИСК.

Взять исходники можно на github. Распространяется по GPLv2. Там есть архив с исполняемым файлом. Для работы требуется библиотека Bencode Library, но не оригинальная, а модифицированная мною (есть у меня в репозитарии, подключена субмодулем).

Спасибо всем, кто проявил терпение и дочитал эту статью до конца. Рад услышать ваши вопросы, приветствуется всевозможная помощь в совершенствовании алгоритма и, в особенности, кода.

UPD1. По результатам обсуждения мне стало понятно, что правильней будет не ломать существующие коллекции выдергиванием файлов на раздачу, а наоборот — создавать хардлинки в нужном для раздачи месте на файлы внутри упорядоченных коллекций (фильмо и дискографий, например). В дальнейшем программа будет работать именно так.

UPD2. Если у тех, кто пользовался этой утилитой, есть еще какие-то пожелания по функционалу или баг репорты, то прошу оставлять их на github в issue-трекере.

Почему Торрент клиент не может найти пиров и выполнить закачку файла, в чем причины этой проблемы и как ее можно решить.

Возможно вам знакома такая ситуация, когда вы захотели скачать любимую игру или интересный фильм через торрент, но, когда вы добавляете в закачки файл, загрузки не происходит. И в этот момент не известно, почему торрент не подключается к пирам и не качает. В этой статье мы обязательно решим этот вопрос.

Торрент

Причины по которым Торрент не подключается к пирам

Если до этого случая вы скачивали файлы и проблем с подключением к пирам не возникало, то причины могут быть следующие:

  • Неполадки на сервере. Проблемы с Интернетом у провайдера. В этом случае ваша система, оборудование и сам клиент ни в чем не виноваты. Причина кроется в неполадках на стороне сервера или провайдера. Возможно, что после исправления проблем вы сможете успешно скачать нужный файл. Вы можете также обратиться на горячую линию провайдера и уточнить причину отсутствия интернета и за какой срок устранят неполадки.
  • Нет доступных пиров, сидов. Этот случай бывает часто. Причина проста – возможно файл не популярен и не имеет необходимых доступных частиц для отдачи.
  • Настройки торрент-клиента некорректны. Давайте рассмотрим, как правильно настроить клиент для нормальной работы.

Настроим торрент-клиент для стабильной работы

Чтобы открыть настройки, выберите вверху программы вкладку «Настройки», и кликните на пункте «Настройки программы». Нужно пройти процедуру настройки для устранения проблемы, когда Торрент может не подключиться к пирам и не скачивать необходимые файлы.

Торрент

Теперь в общих должны стоять галочки на пунктах «Запускать свернуто» и «Автопроверка ассоциаций». А также в самом низу «Запретить спящий режим во время загрузки», остальные пункты без галочек.

Торрент

  • В пункте о языках интерфейса установите русский, если по каким-то причинам у вас английский интерфейс в разделе «Language».
  • Пункт «Запускать клиент с ОС», здесь вы можете установить настройки по своему усмотрению, если у вас хороший интернет и мощная система, компьютеру не будет в нагрузку запущенный клиент.
  • «Устанавливать обновления автоматически» здесь лучше убрать галочку с пункта «Обновляться до бета-версии», ведь они как правило работают не стабильно.
  • «Ассоциировать» – этот пункт будет определять торрент файлы и при необходимости запускать. Лучше оставить его включенным.

Что делать, если нет в сети Торрента необходимых пиров?

Пиры (peer) – это компьютер, который скачал файл через торрент-клиент и готов отдать его следующему пользователю по такому-же определенному протоколу. Если вы удалите из списков загрузки торрент-клиента скаченный файл, то программа не сможет больше делиться его частями с другими пользователями в пиринговой сети.

Для лучшего понимания, нужно кратко описать процесс скачивания при помощи пиринговых сетей файлов. В таких сетях, по большому счету, нет серверов, откуда вы качаете файл. И клиентом, и сервером здесь выступают компьютеры пользователей. После того, как определенный пакет от целого файла ваш компьютер скачал на ваш жесткий диск, он оповещает другие компьютеры в сети, что готов им поделиться, которые также в этот момент скачивают этот же файл.

Торрент

Решаем проблему, когда торрент не подключается к пирам

Ваш провайдер может быть причиной того, что вы не можете скачать торрент. Некоторые подобные компании ограничивают Peer to Peer-трафик, а в некоторых случаях и вовсе выключают возможность его применения. Есть возможность обойти такую хитрость со стороны провайдера. На скрине можно увидеть, как это сделать.

Торрент

Выключение в настройках IP-фильтра даст возможность подключить больше пиров. Эта опция даст возможность брать частицы торрент-файлов у других сетей и даже у зарубежных узлов. Это даст возможность максимально быстро получить желаемый файл.

Перезапуск клиента может помочь в некоторых случая, когда необходимо перезайти в сеть и подключиться заново. Сделайте это в программе – нажмите «Файл», далее «Выход». После чего стандартным двойным нажатием на иконку запустите приложение.

Блокировать скачивание файлов может брандмауэр Windows. Откройте его, перейдите в настройки и в пункте «Разрешить доступ» укажите вашу программу uTorrent. Проделайте все вышеописанные действия и проблема с подключениями к пирам в Торренте будет исчерпана.

Жесткий диск WD Blue WD10EZEX
SSD Crucial BX500 CT120BX500SSD1
Жесткий диск Transcend StoreJet 25M3 1 TB


У вас на ПК установлена торрент-программа? И вы хотите узнать, где именно она установлена и куда качает файлы? Окей. Мы сегодня постараемся разобраться с этими двумя вопросами!

  1. Как узнать куда качает торрент-прога файлы. А также расположение скачанных файлов по умолчанию.
  2. Куда устанавливается торрент-прога, тоже папка по умолчанию и способ как узнать самостоятельно.

У меня на компе установлено две популярных торрент-программы, это uTorrent и BitTorrent, хотя такое чувство.. что это одинаковые проги, просто чуть разное оформление, а движок один и тотже..

uTorrent все таки намного популярнее, поэтому сперва разберемся с ним. В общем я открыл uTorrent, иду в загрузки, у меня там есть одна закачка, все уже скачалось давно:


Теперь нажимаю по этой закачке правой кнопкой и выбираю пункт Открыть папку:


Важно понимать, что никакие настройки я не изменял! Вообще! Поэтому откроется папка по умолчанию, куда uTorrent скачивает файлы, у меня открылась вот эта папка:

Но куда сам uTorrent устанавливается? Здесь тоже покажу интересный способ как узнать:


У меня открылась эта папка:


У вас скорее всего будет такая же. Только имя учетной записи будет другое, не Dima))

Как удалить uTorrent или BitTorrent?

В жизни бывают разные ситуации, иногда нужно прогу переустановить или даже удалить, она вам не угодила, работает плохо, качает медленно, в общем глючит, тупит..

Я покажу штатный виндовский способ удаления программы:

  1. Зажмите Win + R, появится окошко Выполнить.
  2. Вставьте команду appwiz.cpl, нажмите ОК.
  3. Откроется окно со списком установленного софта.
  4. Найдите тут uTorrent или BitTorrent (смотря какую именно хотите удалить), нажмите правой кнопкой, выберите Удалить.
  5. Следуйте инструкциям на экране. Да, обычно нужно нажимать Далее/Next/Удалить/Uninstall.. собственно ничего сложного нет.


Читайте также: