Accès direct disques et partitions en C#

Soyez le premier à donner votre avis sur cette source.

Vue 577 fois - Téléchargée 203 fois


Description

Cette source C# est la traduction de celle-ci en VB Net ; https://codes-sources.commentcamarche.net/source/100338-acces-direct-disques-et-partitions-vb-net
Exploration des lecteurs physiques et des partitions logiques sous Windows .
Projet fait avec Visual Studio Community 2017 .
Les projets similaires en VB Net codés par Cs_Galain et Codeagogo ( mes anciens pseudos avant le basculement chez CCM) ne sont point à jour et comportent des erreurs . Ils ne doivent plus être utilisés . Il en est de même pour les projets similaires VB 6 .
Aucune écriture directe n'est faite sur les disques physiques ou partitions logiques .

Exploration des systèmes de fichiers FAT (FAT16 et FAT32) , exFAT et NTFS !
Exploration des lecteurs physiques et logiques de votre machine !
Les systèmes FAT, FAT32, exFAT et NTFS sont vus en profondeur ( FAT = FAT 16 bits)
Gestion des partitions MBR et GPT ( merci à Wikipedia pour les partitions GPT en passant )
Une connaissance de l'architecture des systèmes de fichiers est recommandée ( surtout en NTFS). Les 3 fichiers .pdf joints m'ont servi de base pour la compréhension de l'architecture des systèmes de fichiers FAT, exFAT et NTFS
La nouvelle version ne comporte plus de modules : on utilise des classes
Rajout d'un contrôle utilisateur en dll dans le projet : ceci permet avec une nouvelle Scrollbar verticale d'explorer les disques et partitions secteur après secteur avec cette même scrollbar .
La valeur maximale de cette scrollbar est de type Decimal ( ce type prend en charge jusqu'à 29 chiffres significatifs et peut représenter des valeurs supérieures à 7.9228 x 10^28 selon MSDN ). Une conversion en interne ramène la valeur de cette Scrollbar en un type INT64 : donc plus aucun souci pour les très gros disques durs .
En interne les secteurs sont définis par une valeur de type INT64 ( la valeur maximale pour un numéro de secteur serait donc 9 223 372 036 854 775 807 (9 2...E+18) divisée par le nombre d'octets par secteurs ce qui laisse de la marge : on arrive à un peu plus de (18 x 10E+15) secteurs avec des secteurs de 512 octets) .
Par contre les clusters sont définis par des valeurs INT32 soit 2 147 483 647 comme valeur maximale . En supposant des clusters de 8 secteurs de 512 octets cela conduit tout de même à des fichiers ou des partitions de 8 796 093 018 112 octets ( soit près de 8 TeraOctets) . Ce qui est largement suffisant actuellement .
De plus cette scrollbar a une fonction auto-répétition : si vous restez avec la souris appuyée sur la scrollbar la fonction se répète automatiquement : pratique pour avancer secteur par secteur avec les 2 boutons Up et Down de la Scrollbar( le SmallChange )
Le Page Up et Page Down ( le LargeChange de la scrollbar) est aussi auto-répétitable
Pour ceux que cela intéresse le code source de la dll est ici : https://www.codeproject.com/Articles/624997/Enhanced-Scrollbar( attention c'est du C#) . La DLL a été réduite car je ne me sers nullement des "bookmarks" du code d'origine . Les bookmarks sont des marqueurs que l'on peut mettre sur la Scrollbar pour marquer des valeurs et retrouver celles-ci en cliquant sur le "marqueur" lui-même .
Pour la lecture des octets stockés sur le disque en NTFS on ne fait plus appel à un fichier temporaire : on lit directement le ou les secteurs nécessaires sur la partition .

Cette source avait été faite en VB 6 au début par moi-même sous le pseudo Cs_Galain . Voici même le code qui a déclenché tout ce projet :http://vbcity.com/forums/t/6825.aspx
La source fut ensuite réécrite en VB Net pour donner le projet actuel !
Correction de bugs et améliorations à suivre de façon à toujours avoir la dernière version mise à jour
N'hésitez pas à commenter : tous commentaires seront les bienvenus !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.