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

Modules Perl Discussion :

Module Win32::Symlink et refus d'accès


Sujet :

Modules Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut Module Win32::Symlink et refus d'accès
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/usr/local/bin/perl
     
    # As a first step, you have to generate a Bio::Grep database out of your Fasta file in which you want to search.
    # A Bio::Grep database consists of a couple of files and allows you to retrieve informations about the database
    # as well as to perform queries as fast and memory efficient as possible. You have to do this only once for every file.
     
    use strict;
    use warnings;
     
    use Bio::Grep;
    use Win32::Symlink;
     
     
    my $sbe = Bio::Grep->new('Vmatch');
    # define the location of the suffix arrays
    $sbe->settings->datapath('P:/Perl/scripts2/Files/BioGrep_DB/');
     
    mkdir($sbe->settings->datapath); 
     
    # now generate a suffix array. you have to do this only once.
    # generate a Bio::Grep database out of your Fasta file in which you want to search
    $sbe->generate_database({
            file => 'P:/Perl/scripts2/Files/mycoplasma2.cdna',
            description => 'mycoplasma_sequences',
    });
    Error setting junction for \??\P:\Perl\scripts2\Files\mycoplasma2.cdna: Accès refusé.


    ------------- EXCEPTION Bio::Root::IOException -------------
    MSG: Can't symlink P:/Perl/scripts2/Files/mycoplasma2.cdna to P:\Perl\scripts2\Files\BioGrep_DB\mycoplasma2.cdna
    STACK Bio::Grep::Backend::BackendI::_copy_fasta_file_and_create_nfo C:/Perl/site/lib/Bio/Grep/Backend/BackendI.pm:450
    STACK Bio::Grep::Backend::BackendI::_prepare_generate_database C:/Perl/site/lib/Bio/Grep/Backend/BackendI.pm:779
    STACK Bio::Grep::Backend::Vmatch::generate_database C:/Perl/site/lib/Bio/Grep/Backend/Vmatch.pm:164
    STACK toplevel Bio_Grep_DB.pl:40

    ------------------------------------------------------------
    Je ne comprends pas pourquoi l'accès au fichier est refusé. Comment puis-je avoir plus d'informations sur la cause du refus?

    Win32Symlink ne fonctionne que sur les systèmes de fichiers NTFS et c'est bien le système que mon WindowsXP utilise.


    Merci pour votre aide,

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    symlink(OLDFILE,NEWFILE)
    Creates a new filename symbolically linked to the old filename. Returns 1 for success, 0 otherwise. On systems that don't support symbolic links, produces a fatal error at run time. To check for that, use eval:

    $symlink_exists = (eval 'symlink("","");', $@ eq '');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    my $symlink_exists = (eval 'symlink("P:/Perl/scripts2/Files/mycoplasma2.cdna","P:/Perl/scripts2/Files/mycoplasma2.txt");', $@ eq '');
    Me retourne la même erreur .

  3. #3
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $mode = (stat('P:/Perl/scripts2/Files/mycoplasma2.cdna'))[2];
    print "mode : $mode\n";

    [2] mode file mode (type and permissions)
    mode : 33206

    Où puis-je trouver la signification de cette valeur?


    Merci,

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (-r 'P:/Perl/scripts2/Files/mycoplasma2.cdna'){
    	print "file is readable\n";
    }
     
    if (-w 'P:/Perl/scripts2/Files/mycoplasma2.cdna'){
    	print "file is writable\n";
    }
    Je passe pourtant bien dans ces 2 boucles ...
    Personne n'a d'idée sur la cause du refus d'accès?


    Merci,

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    33206 => permission 666

  6. #6
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par djibril Voir le message
    33206 => permission 666

    Merci Djibril.

    This is why it is common to set a script's permissions to 755 (which allows other users to read and execute the file) and its data-files to 666 (which allows them to read and write to the file)
    Cela ne fait que confirmer les tests -r et -w

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $mode = "33206";
    print substr( sprintf("%o", $mode), 3);
    => 666

  8. #8
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Merci pour ce truc.


    J'ai lu qu'un lien symbolique d'un fichier garde les droits du fichier d'origine ... pourquoi donc devrait-il être plus que -w et -r?

    Error setting junction for \??\P:\Perl\scripts2\Files\mycoplasma2.cdna: Accès refusé.
    Pourquoi y a-t-il des points d'interrogation et pourquoi un mélange d'anglais et de français dans ce message?

    La suite du message est également étrange
    MSG: Can't symlink P:/Perl/scripts2/Files/mycoplasma2.cdna to P:\Perl\scripts2\Files\BioGrep_DB\mycoplasma2.cdna
    Pourquoi créer un symlink avec l'extension .cdna au lieu de .lnk

    Merci,

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

Discussions similaires

  1. Refuser l'accès d'un utilisateur
    Par SINASOFT dans le forum AIX
    Réponses: 3
    Dernier message: 07/01/2008, 12h45
  2. Mon webmaster refuse l'accès à mon NDD
    Par leoburd dans le forum Domaines
    Réponses: 10
    Dernier message: 30/04/2007, 23h49
  3. [vb.net] refus d'accés au fichier
    Par malhivertman1 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 27/04/2007, 15h30
  4. Réponses: 1
    Dernier message: 11/12/2005, 21h21
  5. Refus d'accès à une base Firebird
    Par severine dans le forum Installation
    Réponses: 18
    Dernier message: 04/06/2003, 16h03

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