Skip to content

unclealexkun/MusicFlashDrive

Repository files navigation

MusicFlashDrive

Приложение для автоматизированного копирования MP3-файлов на съёмные носители с интеллектуальным управлением дубликатами.

🎯 Возможности

  • Чтение метаданных: Автоматическое извлечение ID3-тегов (исполнитель, альбом, год) через TagLibSharp
  • Три режима копирования:
    • По исполнителю → /{Исполнитель}/{Альбом} ({Год})/{Треки}
    • По альбому → /{Альбом} ({Год})/{Исполнитель}/{Треки}
    • Плоская структура → /{Треки}
  • Защита от дубликатов: Сравнение файлов по SHA256 хешу перед копированием
  • Асинхронная работа: Неблокирующий UI с прогресс-барами и поддержкой отмены операции
  • Мониторинг диска: Отслеживание свободного места в реальном времени

🛠 Технологии

  • .NET 8.0
  • Windows Forms
  • C# 12
  • TagLibSharp 2.3.0 (работа с ID3-тегами)

📁 Структура проекта

MusicFlashDrive/
├── MusicFlashDrive.sln              # Решение Visual Studio 2022
├── src/
│   ├── MusicFlashDrive/             # WinForms приложение
│   │   ├── MainForm.cs              # Главный экран с выбором папки и режима
│   │   ├── ProgressForm.cs          # Окно прогресса копирования
│   │   └── Program.cs               # Точка входа
│   └── FileOperation/               # Библиотека операций с файлами
│       ├── FileCopier.cs            # Логика копирования с 3 режимами
│       ├── FileHashComparer.cs      # Сравнение по SHA256
│       └── ID3Reader.cs             # Чтение ID3-тегов
└── README.md

🚀 Быстрый старт

Требования

  • Windows 10/11
  • .NET 8.0 SDK
  • Visual Studio 2022 (опционально)

Установка зависимостей

cd src/MusicFlashDrive
dotnet restore

cd ../FileOperation
dotnet restore

Сборка

dotnet build MusicFlashDrive.sln

Запуск

dotnet run --project src/MusicFlashDrive/MusicFlashDrive.csproj

📖 Использование

  1. Подключите съёмный носитель (USB-флешку)
  2. Запустите приложение
  3. Выберите папку с MP3-файлами
  4. Выберите режим организации файлов:
    • По исполнителю: Группировка по артистам
    • По альбому: Группировка по альбомам
    • Плоский список: Все треки в одной папке
  5. Нажмите "Копировать" и отслеживайте прогресс

🔍 Как работает сравнение файлов

Перед копированием каждый файл проверяется:

  1. Вычисляется SHA256 хеш исходного файла
  2. Сравнивается с хешами файлов в целевой папке
  3. Копируются только уникальные файлы

Это исключает дублирование даже при разных именах файлов.

⚙️ Архитектура

MusicFlashDrive (UI)

  • MainForm: Управление выбором папки, режима и запуском копирования
  • ProgressForm: Отображение прогресса, скорости копирования, свободного места

FileOperation (Business Logic)

  • FileCopier: Реализация 3 стратегий копирования
  • FileHashComparer: Побайтовое сравнение через SHA256
  • ID3Reader: Извлечение метаданных из MP3

📝 Лицензия

MIT

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages