{"id":23681663,"url":"https://github.com/vilhalva/copy-pastas","last_synced_at":"2026-05-15T13:33:45.428Z","repository":{"id":255576358,"uuid":"852422102","full_name":"VILHALVA/COPY-PASTAS","owner":"VILHALVA","description":"🎈COPIE O NOME DE TODOS OS ARQUIVOS, DIRETÓRIOS E SUBDIRETÓRIOS.","archived":false,"fork":false,"pushed_at":"2025-06-23T21:10:17.000Z","size":186035,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-23T21:41:52.393Z","etag":null,"topics":["aplicativo","automacao","customtkinter","framework","installer","interface","projeto","python","update","windows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VILHALVA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-04T19:21:57.000Z","updated_at":"2025-06-23T21:10:21.000Z","dependencies_parsed_at":"2025-06-23T21:42:44.029Z","dependency_job_id":null,"html_url":"https://github.com/VILHALVA/COPY-PASTAS","commit_stats":null,"previous_names":["vilhalva/copy-pastas"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VILHALVA/COPY-PASTAS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VILHALVA%2FCOPY-PASTAS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VILHALVA%2FCOPY-PASTAS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VILHALVA%2FCOPY-PASTAS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VILHALVA%2FCOPY-PASTAS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VILHALVA","download_url":"https://codeload.github.com/VILHALVA/COPY-PASTAS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VILHALVA%2FCOPY-PASTAS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273633038,"owners_count":25140772,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-04T02:00:08.968Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aplicativo","automacao","customtkinter","framework","installer","interface","projeto","python","update","windows"],"created_at":"2024-12-29T18:41:08.715Z","updated_at":"2026-05-15T13:33:45.422Z","avatar_url":"https://github.com/VILHALVA.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# COPY PASTAS\r\n👨‍🏫COPIE O NOME DE TODOS OS ARQUIVOS, DIRETÓRIOS E SUBDIRETÓRIOS E/OU SELECIONE DUAS PASTAS E VERIFICAR SE TODAS AS SUBPASTAS DO DIRETÓRIO 1 (PAI) TAMBÉM EXISTEM NO DIRETÓRIO 2 (FILHO).\r\n\r\n\u003cimg src=\"./IMAGENS/FOTO_01.png\" align=\"center\" width=\"500\"\u003e \u003cbr\u003e\r\n\u003cimg src=\"./IMAGENS/FOTO_02.png\" align=\"center\" width=\"500\"\u003e \u003cbr\u003e\r\n\r\n## DESCRIÇÃO:\r\nO **COPY PASTAS** é um aplicativo para Windows desenvolvido em Python com `customtkinter`, que combina duas funcionalidades em um único ambiente através de abas: **EXPLORADOR** e **COMPARADOR**.\r\n\r\n## FUNCIONALIDADES:\r\n1. **Aba EXPLORADOR (🔍 EXPLORAR):**\r\n   * Permite selecionar qualquer diretório no sistema.\r\n   * Lista arquivos e pastas contidos no diretório selecionado.\r\n   * Oferece filtros por tipo: `MP3`, `TODOS`, `JSON` e `TXT`.\r\n   * Gera listas formatadas de arquivos, incluindo estatísticas de memória usada, memória livre e total, além do total de pastas e arquivos/músicas.\r\n   * Permite copiar o conteúdo gerado para a área de transferência e limpar o campo de exibição.\r\n   * Interface intuitiva com botões de seleção, geração e cópia, além de notificações visuais (“toasts”) ao copiar o texto.\r\n\r\n2. **Aba COMPARADOR (📂 COMPARAR):**\r\n   * Permite comparar dois diretórios, chamados de “DIRETÓRIO 1 (PAI)” e “DIRETÓRIO 2 (FILHO)”.\r\n   * Lista pastas e arquivos que existem no diretório pai, mas estão ausentes no diretório filho.\r\n   * Identifica subpastas e arquivos faltantes, mostrando-os de forma organizada na tela.\r\n   * Indica quando os diretórios estão completamente sincronizados.\r\n   * Permite copiar ou limpar os resultados da comparação de forma rápida.\r\n\r\n## RECURSOS EXTRAS:\r\n* Interface moderna com abas coloridas e arredondadas, usando tons escuros e botões destacados em verde e azul.\r\n* Sistema de “toasts” para alertas visuais quando uma ação é realizada, como copiar para a área de transferência.\r\n* Suporte a pastas ocultas e arquivos de sistema, ignorando-os na listagem e comparação.\r\n* Estatísticas detalhadas sobre memória e quantidade de arquivos, facilitando o gerenciamento de grandes diretórios.\r\n\r\n## ÍNDICE NUMÉRICO NO **MP3** E **TODOS**:\r\n### CONCEITO:\r\nÉ um **conjunto de números de referência** que serve para **identificar e organizar as pastas e as faixas** na ordem em que aparecem no resultado.\r\n\r\nEle **não é nome de pasta**, nem **quantidade de arquivos**.\r\nÉ apenas um **identificador visual e sequencial**.\r\n\r\n### EXEMPLO:\r\n#### RESULTADO:\r\n```\r\n{01 - 01} \u003c-\u003e Rock/Album1 \u003c-\u003e {10 MUSICAS}\r\n{02 - 11} \u003c-\u003e Rock/Album2 \u003c-\u003e {08 MUSICAS}\r\n{03 - 19} \u003c-\u003e Pop/Album1  \u003c-\u003e {12 MUSICAS}\r\n```\r\n\r\n#### SIGNIFICADO:\r\n* **01, 02, 03** → índice numérico da pasta\r\n  👉 indica **a posição da pasta na lista**\r\n\r\n* A primeira pasta é **01**\r\n\r\n* A segunda pasta é **02**\r\n\r\n* A terceira pasta é **03**\r\n\r\n* **01, 11, 19** → índice numérico da faixa inicial\r\n  👉 indica **em qual número de faixa aquela pasta começa**\r\n\r\n* A primeira pasta começa na faixa **01**\r\n\r\n* A segunda pasta começa na faixa **11** (a anterior tem 10 músicas)\r\n\r\n* A terceira pasta começa na faixa **19** (10 + 8 músicas)\r\n\r\n## POR QUE CRIEI ESTE APP?\r\n* **EXPLORADOR:** Após usar o [DRIVESORT](https://www.anerty.net/software/file/DriveSort/) para manter a ordem dos diretórios e subdiretórios do meu PC em sistemas embarcados, percebi a necessidade de criar um novo aplicativo que armazenasse e listasse os nomes desses diretórios em ordem. Eu utilizo meus pendrives em diversos sistemas embarcados, como caixas de som e DVDs, que geralmente não têm tela, apenas saídas de áudio. Isso tornava cansativo ter que adivinhar ou memorizar o número dos diretórios/faixas de cada álbum.\r\n\r\n* **COMPARADOR:** O principal motivo foi garantir que todos os diretórios e arquivos presentes no meu **Desktop** estivessem devidamente **sincronizados com meus pendrives**. Com ele, consigo identificar rapidamente se há algo faltando — seja uma pasta inteira ou apenas um arquivo — e até mesmo detectar **nomes divergentes** entre os diretórios. Ele já me **salvou de inúmeros problemas com backups**, evitando perda de dados importantes por falta de organização ou cópias incompletas.\r\n\r\n## EXECUTANDO O PROJETO:\r\n1. **Instale as bibliotecas necessárias:** Antes de executar o app, certifique-se de instalar todas as dependências necessárias. No terminal, execute o seguinte comando para instalar as dependências listadas no arquivo requirements.txt em `CODIGO`:\r\n   ```bash\r\n   pip install -r requirements.txt\r\n   ```\r\n   \r\n2. **Inicie o Aplicativo**:\r\n   * Para executar o script Python, navegue até o diretório `./CODIGO` e use o comando:\r\n\r\n   ```bash\r\n   python CODIGO.py\r\n   ```\r\n\r\n3. **EXPLORADOR:**\r\n   * Abra a aba “🔍 EXPLORAR”.\r\n   * Clique em **SELECIONAR** e escolha um diretório.\r\n   * Escolha o tipo de arquivos que deseja listar (`MP3`, `TODOS`, `JSON` ou `TXT`).\r\n   * Clique em **GERAR** para visualizar a lista.\r\n   * Copie ou limpe o conteúdo usando os botões correspondentes.\r\n\r\n4. **COMPARADOR:**\r\n   * Abra a aba “📂 COMPARAR”.\r\n   * Selecione o **DIRETÓRIO 1 (PAI)** e em seguida o **DIRETÓRIO 2 (FILHO)**.\r\n   * O aplicativo mostrará automaticamente os arquivos e pastas ausentes no diretório filho.\r\n   * Copie ou limpe os resultados conforme necessário.\r\n\r\n## SOBRE O EXECUTAVEL E O INSTALADOR:\r\n### 1. EXECUTANDO O INSTALADOR:\r\n   * O instalador está localizado no diretório `./APP` e está disponível apenas para sistemas **Windows x64**. Para realizar a instalação, basta **dar dois cliques no arquivo** e seguir as instruções exibidas na tela.\r\n\r\n### 2. GERANDO O EXECUTAVEL:\r\n\u003e **IMPORTANTE:** Antes de criar o instalador, é necessário gerar o arquivo `COPY PASTAS.exe`. Para isso, siga os passos abaixo:\r\n\r\n   **1. Instalação do PyInstaller:**\r\n   * Certifique-se de ter o PyInstaller instalado. Se não tiver, instale usando o comando abaixo:\r\n   ```bash\r\n   pip install pyinstaller\r\n   ```\r\n\r\n   **2. Gerando o Executável:**\r\n   * No diretório `./CODIGO`, utilize o comando abaixo para gerar o executável:\r\n\r\n   ```bash\r\n   pyinstaller EXECUTAVEL.spec\r\n   ```\r\n\r\n   * O executável `COPY PASTAS.exe` será criado na pasta `./CODIGO/dist`.\r\n   * Após a geração, você pode excluir a pasta `./CODIGO/build`.\r\n\r\n### 3. GERANDO O INSTALADOR:\r\n#### PASSO 1: BAIXAR E INSTALAR O INNO SETUP:\r\n1. **Download**: Baixe o Inno Setup do site oficial: [Inno Setup](http://www.jrsoftware.org/isdl.php).\r\n2. **Instalação**: Siga o assistente de instalação para instalar o Inno Setup no seu sistema.\r\n\r\n#### PASSO 2: CRIAR O INSTALADOR:\r\n\u003e **IMPORTANTE:** Antes de criar o novo instalador, certifique-se de excluir o arquivo `./APP/COPY PASTAS.exe`.\r\n\r\n1. **Editar o arquivo do instalador:**\r\n   * No diretório `./CODIGO`, abra o arquivo `INSTALADOR.iss` e atualize o seguinte trecho:\r\n\r\n   * Localize a diretiva `#define Diretorio` e substitua pelo caminho correto do diretório do projeto. Exemplo:\r\n\r\n   ```ini\r\n   #define Diretorio \"C:\\Users\\HP\\Downloads\\GITHUB\\REPOSITORIO\\02-PROJETOS PUBLICOS\\02-APLICATIVOS\\COPY PASTAS\\CODIGO\"\r\n   ```\r\n\r\n2. **Gerar o instalador no Inno Setup:**\r\n   * Abra o arquivo `./CODIGO/INSTALADOR.iss` com o **Inno Setup**.\r\n   * Clique em **\"Compile\"** para gerar o instalador.\r\n\r\n3. **Limpar arquivos temporários:**\r\n   * Após a criação do instalador, você pode excluir o executável temporário `./CODIGO/dist/COPY PASTAS.exe`.\r\n\r\n4. **Instalando o Aplicativo:**\r\n   * Se o `Aplicativo` não iniciar automaticamente a instalação, você pode executar manualmente o arquivo `./APP/COPY PASTAS.exe` clicando duas vezes sobre ele.\r\n   * O assistente de instalação será iniciado e, por padrão, o aplicativo será instalado no seguinte caminho: `C:\\Program Files\\COPY PASTAS`.\r\n\r\n## NÃO SABE?\r\n- Entendemos que para manipular arquivos em muitas linguagens e tecnologias, é necessário possuir conhecimento nessas áreas. Para auxiliar nesse aprendizado, oferecemos cursos gratuitos e alguns subsídios:\r\n* [CURSO DE PYTHON](https://github.com/VILHALVA/CURSO-DE-PYTHON)\r\n* [CURSO DE CUSTOMTKINTER](https://github.com/VILHALVA/CURSO-DE-CUSTOMTKINTER)\r\n* [CURSO DE AUTOMACAO](https://github.com/VILHALVA/CURSO-DE-AUTOMACAO)\r\n* [CONFIRA MAIS CURSOS](https://github.com/VILHALVA?tab=repositories\u0026q=+topic:CURSO)\r\n* [DOCUMENTAÇÃO OFICIAL DO PYINSTALLER](https://pyinstaller.org/en/stable/)\r\n* [DOCUMENTAÇÃO OFICIAL DO INNO SETUP](http://www.jrsoftware.org/isinfo.php)\r\n\r\n## CREDITOS E MAIS:\r\n- [PROJETO CRIADO PELO VILHALVA](https://github.com/VILHALVA)\r\n- [CLIQUE AQUI PARA VER O HISTÓRICO DE ATUALIZAÇÕES](./UPDATES.md)\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilhalva%2Fcopy-pastas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvilhalva%2Fcopy-pastas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvilhalva%2Fcopy-pastas/lists"}