Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di afrappe
    Registrato dal
    Jan 2002
    Messaggi
    1,197

    [vb net] controllare se due file sono indentici

    come posso controllare se due cartelle o anche due file sono identici?
    per identici non intendo controllare solo il contenuto ma anche il nome del file e/o cartelle

    devo fare un controllo bit a bit? che classi devo usare? mi date qualche suggerimento?
    grazie a tutti come al solito per l'attenzione
    Alessio.

  2. #2
    Per le directory puoi controllare se hanno nome uguale o contengono gli stessi file e/o cartelle. Nel primo caso bisogna solo confrontare il nome, ed è semplice. Nel secondo caso puoi usare le funzioni GetFiles(Dir) e GetDirectories(Dir) di IO.Directory, che restituiscono i files e le cartelle presenti nella cartella Dir: esegui quindi un confronto di array per controllare se ci sono file e/o cartelle con lo stesso nome. Se vuoi approfondire la ricerca, e questo vale anche per il confronto file-file, puoi controllare che ogni file con lo stesso nome abbia anche lo stesso contenuto. In questo caso usi la classe IO.BinaryReader per un confronto binario: prelevi tutti i bytes da ciascun file e confronti gli array. Un controllo preventivo che potresti eseguire è anche quello di controllare se i due files o le due cartelle hanno la stessa dimensione (ond'evitare di addentrarti in altri controlli inutili): usa IO.FileInfo.Length (o anche FileSize) per calcolare la grandezza di un file e una funzione ricorsiva per calcolare quella della directory. Il mio consiglio è di strutturare il controllo su diversi livelli, ossia:
    codice:
    Controllo Cartella - Cartella:
    1- Nome della cartella
    2- Grandezza della cartella
    3- Nomi dei files e sotto-cartelle della cartella
    4- Grandezza dei files e sotto-cartelle della cartella (opzionale, difficilmente cartelle avranno la medesima dimensione anche con files diversi: questione di pochi bytes)
    5- Contenuto dei files e sotto-cartelle della cartella: per i file confronto binario; per le sotto-cartelle, torna al punto 1.
    
    Controllo File - File:
    1- Nome del file
    2- Grandezza del file
    3- Contenuto del file

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.