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

Windows Discussion :

Dossier ou fichier virtuel en RAM


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut Dossier ou fichier virtuel en RAM
    Salut tout le monde,

    Y a t'il un moyen sous Windows de mapper un fichier en mémoire (memory mapped file [1] - [2] ) mais de sorte qu'il soit accessible pour toute autre application de l'extérieur... J'ai essayé avec l'api CreateFile et l'attribut FILE_ATTRIBUTE_TEMPORARY, mais le fichier reste bloqué par le process créateur tant qu'on n’a pas libéré le handle, et bien sur, dès qu'on le fait, le fichier est recopié sur le disque et on perd l'avantage recherché.

    Est-ce que vous voyez une solution qui permettrait de faire l'équivalent d'un ramdrive ou ramdisk, mais juste pour un fichier, ou mieux, la possibilité de faire un dossier virtuelle en mémoire ?

    Merci...

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Normalement, FILE_ATTRIBUTE_TEMPORARY + FILE_FLAG_DELETE_ON_CLOSE + les bons flags de partage devrait garder le fichier entièrement en RAM, sauf si on manque de RAM.

    Sinon, tu peux aussi juste faire une mémoire partagée nommée...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Merci Médinoc, t'es généralement le seul qui prend mes appels système Windows... Si je pouvais mettre un +1000 je le ferais volontiers... en tout cas

    Sinon, oui le fichier reste bien en ram, ça y'a pas de problème, le seul souci par exemple, c'est que je ne peux pas y accéder systématiquement de l'extérieur... hier ça fonctionné pas, et aujourd'hui avec le même binaire que la veille, ça a fonctionné... Je ne l'explique pas encore... mais je vais creuser... Je ne mets pas flag "delete on close" pour conserver le fichier après traitement...

    Encore merci...

  4. #4
    Membre Expert
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Par défaut
    Bon ben pour le retour Médinoc, alors bien que le fichier soit partagé(FILE_SHARE_X), il n'est pas impossible que s'enclenche une violation de partage lors d'une tentative d'accès, car il peut y avoir un lock momentané sur le fichier, soit par le système lui-même, soit par l'antivirus ou autre, il faut prévoir une petite boucle de tentative d'accès pour être assuré d'avoir la main dessus.

    À coté de cela, comme j'ai trouvé le truc intéressant, j'ai essayé de faire pareil avec un exe (), mais y'a pas de FILE_SHARE_EXECUTE, cependant un partage classique avec un accès en lecture seulement, ça fonctionne, bien sur le fichier n'est pas en mémoire. Mais dès que le fichier est ouvert en écriture, rien à faire, au mieux un DuplicateHandle pour changer le type d'accès après que le fichier soit composé, mais il s'en retrouve recopié sur le disque...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2013, 16h04
  2. [VBA-A]Parcours d'une arborescence dossiers et fichiers
    Par sidneyvba dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/03/2006, 16h58
  3. dossier ou fichier?
    Par Biosox dans le forum C++
    Réponses: 2
    Dernier message: 06/10/2005, 14h41
  4. Réponses: 8
    Dernier message: 22/02/2005, 22h22
  5. Dossier ou Fichier avec ShellListView
    Par MoussDiouf dans le forum Langage
    Réponses: 6
    Dernier message: 14/06/2003, 12h33

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