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 :

Dupliquer un fichier lors de son écriture


Sujet :

C++

  1. #1
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut Dupliquer un fichier lors de son écriture
    Bonjour,

    J'ai une appli (dont je n'ai évidemment pas le code source et que je ne peux pas modifier) qui écrit un fichier dans un répertoire, puis l'efface pour en réécrire un autre dans ce même répertoire, et ainsi de suite...

    J'aimerai récupérer chacun de ces fichiers pour les avoir tous dans un répertoire "à part" (pour pouvoir les traiter). Je suis sous windows (NT ou 2K).

    Pour ce faire, j'ai envisagé plusieurs solutions :
    • monitorer les écritures, faire un move du fichier dès le close. Ça ne me semble pas satisfaisant, car je suspecte fortement que l'appli puisse tenter d'écrire le fichier lorsque je suis en train de faire le move, que ça échoue lamentablement et qu'elle ne s'en remette pas
    • Créer un driver windows qui se charge de la duplication (pas trop sûr que je puisse mettre un répertoire en tant qu'input de mon driver)
    • Hooker les appels à CreateFile, etc... pour les passer par du code à moi qui ferait l'écriture à deux endroits.


    D'où, questions :
    • Quelle approche vous semble la plus raisonnable ?
    • Avez-vous une idée d'une autre approche ?


    Merci

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Peut-être tout simplement faire un groupe d'utilisateurs spécial, enlever les droits de suppression pour ce groupe sur le répertoire de sortie, et exécuter ton programme avec les privilèges de ce groupe ?

  3. #3
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Ce serait peut-être envisageable, mais ça a toutes les chances de casser le fonctionnement de l'autre appli (je n'ai aucune confiance en sa robustesse).

    Par contre, je pense finalement m'orienter vers les filter drivers, ça semble la solution la plus adaptée.

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    DeleteFile, sûrement la fonction utilisée derrière, est plutôt du genre à devoir être testée explicitement pour savoir si ça s'est bien passé... Si ton application tierce est aussi peu propre que tu le supposes, il y a peu de chances qu'ils testent le résultat.

    Tu fais comme tu le sens, mais moi, en tout cas, j'essaierai d'abord avec des droits restreints et une notification sur les changements du répertoire de sortie. Si ça ne marche pas, alors envisager autre chose...

  5. #5
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Je ne suis même pas sûr que DeleteFile soit utilisé, je soupçonne plutôt un CreateFile qui écrase le fichier précédent.

    Comme je ne suis pas sur site pour l'instant, je ne peux rien vérifier/tester, donc il me faut une solution dont je sois sûr qu'elle marche...

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Je ne suis même pas sûr que DeleteFile soit utilisé, je soupçonne plutôt un CreateFile qui écrase le fichier précédent.
    D'après ton message d'origine ("qui écrit un fichier dans un répertoire, puis l'efface pour en réécrire un autre dans ce même répertoire, et ainsi de suite..."), je pensais que chaque fichier avait un nom différent d'une itération à l'autre...

    S'il écrase systématiquement le même nom de fichier, c'est plus tout à fait la même histoire...

    Citation Envoyé par white_tentacle Voir le message
    Comme je ne suis pas sur site pour l'instant, je ne peux rien vérifier/tester, donc il me faut une solution dont je sois sûr qu'elle marche...
    C'est là aussi où il y a un problème : à part créer un lecteur virtuel complet que tu maîtrise de A à Z, tu n'auras aucune solution réellement fiable sans faire des essais.

  7. #7
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    C'est là aussi où il y a un problème : à part créer un lecteur virtuel complet que tu maîtrise de A à Z, tu n'auras aucune solution réellement fiable sans faire des essais.
    Disons qu'il y a des solutions où je suis clairement dépendant du comportement du programme, et d'autres non/moins. Du coup, je préfère m'orienter vers la deuxième catégorie .

    Si tu as déjà bossé avec les filter driver ou les hook systèmes, je veux bien un avis, sinon, reste plus qu'à croiser les doigts .

  8. #8
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Si tu as déjà bossé avec les filter driver ou les hook systèmes, je veux bien un avis, sinon, reste plus qu'à croiser les doigts .
    J'en ai déjà utilisé, mais jamais créés moi-même... Donc, pas d'autre solution à te proposer.

  9. #9
    Membre éprouvé
    Avatar de maxim_um
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 895
    Points : 1 018
    Points
    1 018
    Par défaut
    Salut,

    Citation Envoyé par white_tentacle Voir le message
    J'ai une appli (dont je n'ai évidemment pas le code source et que je ne peux pas modifier) qui écrit un fichier dans un répertoire, puis l'efface pour en réécrire un autre dans ce même répertoire, et ainsi de suite...
    Cette "information" n'est vraiment pas exploitable.
    Sans plus de détails, cela reviendrait à discuter dans le vide.

Discussions similaires

  1. [XML] Génération fichier XML pour RSS via PHP, problème lors de l'écriture
    Par gator dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 04/02/2012, 18h17
  2. changer le nom d'un fichier lors de son upload
    Par thaundeadboss dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2009, 10h41
  3. Renommer un fichier lors de son upload
    Par overtrack dans le forum Langage
    Réponses: 3
    Dernier message: 26/09/2009, 00h25
  4. Réponses: 2
    Dernier message: 29/05/2006, 09h54
  5. Passer à la ligne lors de l'écriture dans un fichier
    Par hams dans le forum Assembleur
    Réponses: 4
    Dernier message: 17/04/2005, 19h25

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