DoTheWorld - Biblioteca completa para manipulação de Arquivos e Pastas em C

Neste artigo você irá aprender a fazer manipulação de arquivos e pastas em C de maneira fácil e intuitiva, através da biblioteca DoTheWorld.

[ Hits: 2.511 ]

Por: Mateus Moutinho em 19/01/2024


Trees (árvores de arquivos)



Com árvores você pode fazer operaçoes em pastas, extremamente complexas ,variando desde a listagem , mapeamentos, movimentações, etc. Neste exemplo eu listo uma árvore, seleciono todos os arquivos com extensão .c e, através do método DtwTreePart_hardware_write, eu gero uma ordem de escrita, para assim copiar da pasta original e escrever o resultado na pasta "exemples2" (definida na função DtwPath_set_dir):

#include "doTheWorld.h"

int main(){ 
  //copia arquivos


  DtwTree *arvore = newDtwTree();
  DtwTreeProps props ={
    .content = DTW_INCLUDE,
    .content_data  = DTW_INCLUDE,
    .minification = DTW_MIMIFY,
    .path_atributes  = DTW_INCLUDE
  };


  DtwTree_add_tree_from_hardware(arvore,"exemples",&props);
  for(int i = 0; i < arvore->size; i++){
    
    DtwTreePart * part = arvore->tree_parts[i];
    DtwPath *caminho = part->path;
    char *extensao = DtwPath_get_extension(caminho);
    
    if(!extensao) continue;

    if(strcmp(extensao,"c") == 0){

      DtwPath_set_dir(caminho,"exemples2");
      printf("ira copiar para para %s\n", DtwPath_get_path(caminho));
      DtwTreePart_hardware_write(part,DTW_SET_AS_ACTION);      
    }

  }

  DtwTree_hardware_commit_tree(arvore);
  DtwTree_free(arvore);

  return 0;
}


Também é possível fazer deleções e modificações arquivos e sub pastas , através dos métodos DtwTreePart_hardware_remove e DtwTreePart_hardware_modify

Exemplo de deleção de todos os arquivos com extensão .c
#include "doTheWorld.h"

int main(){ 
  //copia arquivos


  DtwTree *arvore = newDtwTree();
  DtwTreeProps props ={
    .content = DTW_INCLUDE,
    .content_data  = DTW_INCLUDE,
    .minification = DTW_MIMIFY,
    .path_atributes  = DTW_INCLUDE
  };

 DtwTree_add_tree_from_hardware(arvore,"exemples",&props);
  for(int i = 0; i < arvore->size; i++){
    
    DtwTreePart * part = arvore->tree_parts[i];
    DtwPath *caminho = part->path;
    char *extensao = DtwPath_get_extension(caminho);
    
    if(!extensao) continue;
  
    if(strcmp(extensao,"c") == 0){
      printf("ira remover para para %s\n", DtwPath_get_path(caminho));
      DtwTreePart_hardware_remove(part,DTW_SET_AS_ACTION);      
    }
  } 

  DtwTree_hardware_commit_tree(arvore);
  DtwTree_free(arvore);

  return 0;
}



Página anterior     Próxima página

Páginas do artigo
   1. Instalação
   2. Leitura de Arquivos
   3. Escrita de Arquivos
   4. Copiando, movendo e removendo qualquer coisa
   5. Lidando com Base64
   6. Lidando com Hashs
   7. Listagem de Arquivos e Pastas
   8. Trees (árvores de arquivos)
   9. Transactions
Outros artigos deste autor

Guia de Programação em C/GTK 2 - Construindo uma Calculadora Completa

Leitura recomendada

Manipulando arquivos em C (parte 2)

Manipulação de imagens no formato PPM

Manipulando arquivos em C (parte 1)

Manipulação de arquivos em C++

O Produtor e o Consumidor

  
Comentários
[1] Comentário enviado por maurixnovatrento em 20/01/2024 - 14:32h


Biblioteca muito interessante.

___________________________________________________________
Meu Canal: https://www.youtube.com/@LinuxDicasPro
https://github.com/mxnt10

[2] Comentário enviado por mateusmoutinho em 21/01/2024 - 14:47h


Opa vlw man muiito obrigado, depois vou dar uma olhada no seu canal


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts