IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

changer l'adresse d'un fichier...


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 1
    Points : 2
    Points
    2
    Par défaut changer l'adresse d'un fichier...
    salut tout le monde,

    J'aimerais changer l'adresse(a mes risques et perils) d'un fichier .
    Comment faire?

    Merci d'avance A+ cava

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 92
    Points : 84
    Points
    84
    Par défaut
    Peux-tu préciser ta question?? Tu veux déplacer un fichier??
    Zero
    My site : http://blog.lecacheur.com
    GWhere project : http://www.gwhere.org
    Debian Addict site : http://www.debianaddict.org

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Premièrement un fichier n'a pas d'adresse...

    Sous Linux/Unix il est identifié par un numéro d'inode...
    Sous Windows je sais pas (surtout qu'il existe la FAT16, FAT32 et la NTFS)

    Soit plus clair sur ce que tu veux faire...

    a++

  4. #4
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par adiGuba
    Premièrement un fichier n'a pas d'adresse...
    Ok pour l'inode sous Unix/Linux ...

    mais sous DOS/Windows 9x (avec FAT 16 ou 32). il a bien une adresse ce fichier. ou plutôt des adresses. celles des clusters qu'il occupe.

    l'adresse de chaque cluster est composée du numéro de cylindre, celui de secteur etc...

    quand tu obtiens par une interruption du DOS ou une fonction de la bibliothèque de ton compilateur la structure qui te renseigne sur le fichier (qui contient son nom, son attribut, sa date de dernière modif, sa taille etc ...) tu à également l'adresse logique du premier cluster occupé par ton fichier. la FAT te renseigne ensuite sur les autres clusters éventuellement occupés pas ce fichier.

    tout d'abord, il faut convertir cette adresse logique en adresse cylindre/secteur/...

    ensuite, pour changer l'adresse de ce cluster ! il faudrait utiliser l'interruption 13h de lecture/écriture directe du disque.

    Il existe des fonctions d'une autre interruption plus simple car elle utilise les adresses logiques mais je ne sais plus laquelle (peut-être l'interruption 25h ... mais je ne suis pas sûr, ça fait longtemps !)

    et ensuite :

    1) trouver un cluster libre (d'après la FAT),
    1) copier le contenu du premier cluster du fichier dans ce nouveau cluster,
    2) copier l'entrée de la FAT correspondant à l'ancien cluster dans l'entrée correspondant au nouveau cluster,
    3) libérer l'entrée de la FAT correspondant à l'ancien cluster,
    4) remplacer dans le répertoire l'adresse de l'ancien cluster par l'adresse du nouveau.

    dit comme ça ... ça a l'air simple, mais dans la pratique, pas tant que ça !

    bref ... il y a pas mal de boulot !

    Petits rappels :

    FAT = Files Allocation Table
    sur un disque dur, Il y a généralement 512 octets pas secteurs, et souvent 8 secteurs par clusters (sur les disques récents). donc 4096 octets.

    Pour un petit fichier (jusqu'à 4 Ko), changer l'adresse du début du fichier, se traduit donc souvent par déplacer le fichier entier.

    quant à NTFS, je ne sais pas.

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    oups... je ma trompé


    Je pensais pas qu'on appelait ca une adresse en FAT...

    désolé

    C'est sur que c'a a l'air tres compliqué (il doit y avoir plein de cas particulier qui foute la merde...)

    Enfin ca depend de ce que veut faire cava...


    a++

  6. #6
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut Fat
    Pour faire ce que tu veux tu dois en effet utiliser l'int 13h.

    En gros :

    1 - Lire la table des partitions pour trouver le premier secteur de ton disque logique

    2 - Lire le secteur de boot du disk pour trouver les param du disk (par exemple le nbr de secteurs/clusters, la taille de la FAT (qui peut-etre sur 12, 16 ou 32 bits)

    3 - Decoder la FAT pour trouver le 1er cluster de ton fichier

    Ou plus simple par l'int 25h du DOS auquel cas tu peux sauter l'etape 1

    Pour NTFS je ne sais pas

    Et pour y arriver, voir les cours de formation pour apprendre le langage C : http://c.developpez.com/cours/

  7. #7
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut Ha oui
    Pardon j'oubliais (ca fait longtemps que j'ai pas fait ca) :

    pour "matcher" ton nom de fichier avec la FAT il va falloir que tu decode D'ABORD les directory pour avoir la premiére entrée de ton fichier dans la fat

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer les droits d'un fichier downloadé
    Par aergil dans le forum ASP
    Réponses: 5
    Dernier message: 20/05/2005, 12h54
  2. Changer d'adresse
    Par pc152 dans le forum Développement
    Réponses: 1
    Dernier message: 05/01/2005, 23h12
  3. Changer l'adresse ip....
    Par Empty_body dans le forum Web & réseau
    Réponses: 2
    Dernier message: 12/11/2004, 12h59
  4. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42
  5. []Changer une adresse IP
    Par shanod dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 07/10/2003, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo