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 :

Copier un fichier bloqué car en cours d'utilisation.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut Copier un fichier bloqué car en cours d'utilisation.
    Bonjour,

    Je doit copier des fichier et parfois il sont encore utilisés par une application (par exemple des fichiers temporaires)
    Du coup, j'ai un message d'erreur :
    "... because it is being used by another process."

    Auriez vous un code qui permet de copier un fichier même si il est bloqué par une autre application.

    Merci par avance pour votre aide.

  2. #2
    Membre émérite Avatar de neptune
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 835
    Par défaut
    Si le fichier est locké en exclusif, c'est géré par le système d'exploitation, on ne peut le contourner.

    Le mieux que tu peux faire est de garder une liste des fichiers qui ont échoué à la copie, et de ré-essayer après un laps de temps de le copier à nouveau.

    Tu devrais aussi lire les cours C# pour ta formation, c'est des tutoriels gratuit pour la programmation : http://dotnet.developpez.com/cours/?page=csharp
    A ne pas confondre avec les cours pour apprendre le langage C.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut
    Bonjour neptune,

    Je te remercie pour ta réponse, mais le fichier temporaire est effacé à la fin par l'application qui le créé, donc je peux pas le copier à ce moment.

    Ce que je veux, c'est faire une copie en cours d'utilisation de ce fichier.

    Il doit bien y avoir un moyen.
    (Peut être autrement que en C#)

    Merci par avance

  4. #4
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Citation Envoyé par neptune Voir le message
    Si le fichier est locké en exclusif, c'est géré par le système d'exploitation, on ne peut le contourner.

    Le mieux que tu peux faire est de garder une liste des fichiers qui ont échoué à la copie, et de ré-essayer après un laps de temps de le copier à nouveau.
    J'ai pas une meilleure idée!

  5. #5
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut
    Citation Envoyé par fally Voir le message
    J'ai pas une meilleure idée!
    Désolé, mais comme je l'ai dit au dessus.

    Le fichier temporaire sera effacé et moi je veux le copier avant qu'il disparaisse.

    Avez vous une idée de comment sont programmé les logiciels qui delock les fichiers ?

    @+

  6. #6
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Oups! nos posts se sont croisés! et si tu arrètes le process un moment le temps de copier ces fichiers et tu relances apres?

  7. #7
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut
    Citation Envoyé par fally Voir le message
    Oups! nos posts se sont croisés! et si tu arrètes le process un moment le temps de copier ces fichiers et tu relances apres?
    C'est une piste, mais comme c'est un fichier temporaire, j'ai peur qu'il disparaise.

    Tu as un lien vers un exemple de code concernant la détection et le traitement des des process ?

    Merci

  8. #8
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Bonsoir,

    Citation Envoyé par rgesnot Voir le message
    Avez vous une idée de comment sont programmé les logiciels qui delock les fichiers ?
    La classe Stream et classes dérivées manipulent des ressources non managées donc elles utilisent le système de fichier du système d'exploitation. Lorsqu'un programme accède à un fichier, Windows se charge d'empêcher tout autre programme d'y accèder.

    Si tu veux éviter de déclencher une exception lorsque le fichier temporaire est supprimé, tu peux utiliser la classe FileSystemWatcher pour surveiller l'état d'un dossier (lorsque qu'un fichier présent dans le répertoire est modifié, supprimé ou créé).

  9. #9
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Par défaut
    Citation Envoyé par harz62 Voir le message
    Bonsoir,


    La classe Stream et classes dérivées manipulent des ressources non managées donc elles utilisent le système de fichier du système d'exploitation. Lorsqu'un programme accède à un fichier, Windows se charge d'empêcher tout autre programme d'y accèder.

    Si tu veux éviter de déclencher une exception lorsque le fichier temporaire est supprimé, tu peux utiliser la classe FileSystemWatcher pour surveiller l'état d'un dossier (lorsque qu'un fichier présent dans le répertoire est modifié, supprimé ou créé).
    Bonsoir,

    J'avais regardé cette classe pour surveiller la création du fichier, mais je veux pas savoir quand il disparait, mais le copier alors qu'il est en cours d'utilisation.

    Donc je cherche les différentes solutions qui s'offrent à moi.

    Merci

Discussions similaires

  1. Savoir si un fichier est déjà en cours d'utilisation
    Par Annaced dans le forum Débuter
    Réponses: 1
    Dernier message: 01/09/2010, 09h41
  2. Copier les fichiers de la base de donnée utilisée
    Par psychosiffleur dans le forum Windows Forms
    Réponses: 8
    Dernier message: 05/03/2010, 15h42
  3. Réponses: 1
    Dernier message: 22/12/2009, 23h23
  4. Copier un fichier bloqué
    Par upkanet dans le forum Windows
    Réponses: 5
    Dernier message: 08/02/2009, 09h34
  5. Détourner une fonction pour copier un fichier en mémoire
    Par Rodrigue dans le forum C++Builder
    Réponses: 6
    Dernier message: 12/11/2003, 08h29

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