FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Jack Aujourd'hui à 10:03

» Un autre pense-bête...
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
DIR_CHANGE: message d'erreur "Unknown directory" Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

 

 DIR_CHANGE: message d'erreur "Unknown directory"

Aller en bas 
5 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyJeu 29 Nov 2012 - 14:22

Bonjour,
J'ai réalisé une procédure qui permet de récupérer la liste de tous les fichiers portant une certaine extension.
voici le code:
Code:
WIDTH 0,SCREEN_X/2
MEMO 100 : BAR_BOTH 100
WIDTH 100,WIDTH(0)-20
HEIGHT 100,HEIGHT(0)-80
DIM a$
a$="C:\WINDOWS"
' j'ai recomposé le chemin dans un répertoire test et cela fonctionne
' a$="C:\test\WINDOWS\system32\spool\drivers\w32x86\3\Xerox\Product Data\Public\DCPs\x2DNORH8\V5.0"
DIR_LIST(100,a$,".txt")
MESSAGE "Fini !"

END

SUB DIR_LIST(output%,rep$,ext$)
  IF VARIABLE("DIRLIST_i%")=0
    DIM DIRLIST_i%:getObjectId%(ADR(DIRLIST_i%)):DLIST DIRLIST_i%
    DIM DIRLIST_f$,DIRLIST_s$:DIRLIST_s$=DIR_CURRENT$
  END_IF
  CAPTION 0,STR$(COUNT(DIRLIST_i%))+" "+DIR_CURRENT$

  IF DIR_EXISTS(rep$)=1
    DIR_CHANGE rep$
    DIRLIST_f$=FILE_FIND_FIRST$
    WHILE DIRLIST_f$<>"_"
      IF DIR_EXISTS(DIRLIST_f$)=1
        ITEM_ADD DIRLIST_i%,DIRLIST_f$
        DIR_LIST(output%,DIR_CURRENT$+"\"+DIRLIST_f$,ext$)
        DIR_CHANGE ".."
        DIRLIST_f$=FILE_FIND_FIRST$
        WHILE DIRLIST_f$<>ITEM_READ$(DIRLIST_i%,COUNT(DIRLIST_i%)):DIRLIST_f$=FILE_FIND_NEXT$:END_WHILE
        ITEM_DELETE DIRLIST_i%,COUNT(DIRLIST_i%)
      ELSE
        IF ext$<>""
          IF FILE_EXTRACT_EXTENSION$(DIRLIST_f$)=ext$ THEN ITEM_ADD output%,DIR_CURRENT$+"\"+DIRLIST_f$
        ELSE
          ITEM_ADD output%,DIR_CURRENT$+"\"+DIRLIST_f$
        END_IF
      END_IF
      DIRLIST_f$=FILE_FIND_NEXT$
    END_WHILE
  END_IF
  IF COUNT(DIRLIST_i%)=0
    DIR_CHANGE DIRLIST_s$
    DELETE DIRLIST_i% : FREE DIRLIST_i%:FREE DIRLIST_f$:FREE DIRLIST_s$
  END_IF
END_SUB

SUB getObjectId%(p_r%)
  DIM_LOCAL i%:i%=1
  i% = 1
  WHILE OBJECT_EXISTS(i%) = 1 : i% = i% + 1 : END_WHILE
  POKE p_r%,i%
END_SUB

Cette procédure fonctionne très bien, sauf dans un cas particulier:
Si je fais une recherche dans le répertoire "C:\Windows" le programme commence à parcourir l'ensemble des répertoires et à un moment donné, lorsqu'il arrive sur le répertoire :
Code:
C:\WINDOWS\system32\spool\drivers\w32x86\3\Xerox\Product Data\Public\DCPs\x2DNORH8\V5.0

le programme plante avec le message d'erreur :
Code:
Unknown directory. Line : 32

qui correspond à cette ligne :
IF DIR_EXISTS(rep$)=1
DIR_CHANGE rep$
DIRLIST_f$=FILE_FIND_FIRST$
Et je n'arrive pas à savoir pourquoi...
Le répertoire en question existe bien, il n'est pas caché et apparemment n'a pas d'attributs particuliers... (ce n'est pas un lien symbolique)

C'est d'autant plus étonnant que le test juste avant (le DIR_EXISTS) passe très bien...

Quelqu'un aurait une idée ?... (je précise que Panoramic_editor est à jour)

Si quelqu'un pouvait faire le test sur son répertoire Windows et qu'un message similaire arrive, on pourrait peut être en tirer quelque chose... Smile

EDIT : c'est d'autant plus gênant que si on ne peut pas se fier au résultat de DIR_EXISTS, je ne vois pas comment résoudre le problème...

@Jack : dans quel cas, ce message apparait alors que DIR_EXISTS me renvoi 1 ?


Dernière édition par Nardo26 le Jeu 29 Nov 2012 - 14:44, édité 1 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Invité
Invité




DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyJeu 29 Nov 2012 - 14:39

Bonjour,
Je viens d'essayer ton programme.
Déjà au départ, j'arrive directement au message "fini!"
Donc j'ai regardé, et le dossier: W32X86 est vide. Donc j'ai effacé progressivement en arrière, et j'ai eu un blocage sur PRINTER avec ton message d'erreur.
J'ai donc avec l'explorer regardé où j'en étais, et là j'ai eu le message suivant: vous ne disposez pas des droits pour ... etc, message que tout le monde connait sous W7. J'ai donné l'autorisation de lire ce dossier qui est d'ailleur vide.
J'ai relancé le programme, et je n'ai plus eu cette erreur.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyJeu 29 Nov 2012 - 14:48

Meci cosmos,
Le problème c'est que je n'ai pas de message d'erreur concernant un droit d'accès particulier sur ce répertoire (je suis sous XP en "super-user", c'est pas tout à fait administrateur mais pas loin... Wink )

Si tu fais carrément une recherche à partir de "C:\Windows", en dehors de ces fameux message de droits d'accès, tu ne rencontre pas de "Directory Unknown" ?
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyJeu 29 Nov 2012 - 20:47

Il se peut que le répertoire existe, mais que tu n'ais pas les droits pour pouvoir l'ouvrir ...
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyJeu 29 Nov 2012 - 20:56

Je me demande s'il n'y aurait pas une solution pour empêcher cette demande d'autorisation sous W7 ???

Soit par Panoramic, soit par une intervention dans les options des dossiers de W7.

Je suis sous XP (Administrateur) je n'ai donc pas ce problème.

A+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 2:19

Salut tout le monde.

Je suis sous XP, et j’ai la même chose que Nardo26 : ça fonctionne avec les autres répertoires, mais avec c:\Windows, erreur Unknown directory.

J’ai réalisé le code suivant qui fait à peu-près la même chose mais en utilisant la commande MS-DOS DIR.
Code:

' Dir_liste.bas
' Permet de lister tous les fichiers portant une extension  précise
' d'un répertoire quelconque et de ses sous-répertoirs

dim out$ : out$ = "D:\dirtext.txt" : ' Fichier crée par la commande MS-DOS DIR
dim f$ ,lign$ ,ext$ :  ext$ = "*.txt" : ' Extension des fichiers à lister
dim rep$ : rep$ = "c:\windows\" : ' Répertoire et ses sous-répertoires à lister
dim memo% : memo% = 100
width 0,650 : height 0, 550 : MEMO memo% : BAR_BOTH memo%
WIDTH memo%,600 : HEIGHT memo%,500

Dir_Liste(memo%,out$,ext$)
message "Terminé"
end
' ******************************************************************************
' Dans la commande MS-DOS Dir
' le paramètre /a pour Attribut
' le paramètre /s pour Sous-répertoires
' le symbole > (redirection) : la sortie de la commande DIR se fait dans
' le fichier out$, c.à.d  "D:dirtext.txt" et non sur l'écran DOS
' ******************************************************************************
SUB Dir_Liste(memo%,out$,ext$)
    EXECUTE_WAIT "CMD.exe /c dir " + rep$ + ext$+"/a/s  >" + out$
    if file_exists(out$) = 1
      file_open_read 1, out$
      while file_eof(1) <> 1
          file_readln 1,lign$
          item_add memo%,lign$
      end_while
    end_if
    file_close 1
    file_delete out$ : ' Supprimer le fichier de sortie
END_SUB
' ******************************************************************

Remarque : le texte affiché perd ses accents !


Dernière édition par papydall le Ven 30 Nov 2012 - 17:23, édité 2 fois (Raison : Correction)
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 4:23

Jicehel a écrit:
Il se peut que le répertoire existe, mais que tu n'ais pas les droits pour pouvoir l'ouvrir ...
Le problème c'est qu'apparemment sous XP j'ai les droits puisque sous l'explorateur j'arrive sans problème à l'ouvrir et à aucun moment je n'ai eu le moindre message concernant des droits d'accès...

Je viens de relancer un test sous Seven :
J'ai le même problème dès que j'arrive sur un dossier dont l’icône indique qu'il est verrouillé (avec cadenas).
Donc il doit bien y avoir une histoire de droits d'accès...
Peut être parce que le processus Panoramic.exe n'est pas exécuté avec des droits d'administration ?...

Toujours est-il qu'il manque peut être une instruction qui permettrai de tester ce chmilblik....
Peut être qu'avec le couple d'instruction try/catch ou ERROR_OFF on pourrait faire quelque chose... Wink

car je me vois mal de lancer un icacls dans une fenêtre DOS pour chaque répertoire... Wink

Sans compter qu'il faudrait avoir la possibilité de savoir si on a affaire à une jonction (ce que j’appelle aussi un lien symbolique)...
Pour avoir une idée du nombre de jonction, tapez cette commande dans une fenêtre DOS :
Code:
dir c:\ /s /al
note : faut pas être pressé pour obtenir tous les résultats... sur mon portable par ex (win7) j'ai 76 jonctions ! Wink

Un article intéressant ici : http://fspsa.free.fr/recursivite.htm et ici : http://fspsa.free.fr/jonctions.htm
Comme quoi, il faut faire très attention à ce que l'on fait...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 7:01

En tout cas, en effet, il faudrait sans doute une commande type DIR_ATTRIB Nom_rep$ pour récupérer les attributs ou une commande IS_WRITTABLE nom_rep$ et IS_OPENABLE Nom_rep$ un truc du genre quoi ...


Dernière édition par Jicehel le Ven 30 Nov 2012 - 13:11, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 10:36

Récupérer les attributs ? KGF.dll le fait ! Tu as la fonction GetFileAttributes(adr(nom$)), et la procédure GEtFileAttributes(nom$) dans KGF_SUB.bas. Voici un exemple pour avoir les attributs de C:\Windows\System32. Le programme répond 16 ce qui signifie "dossier".

Code:
KGF_initialize("KGF.dll")
GetFileAttributes("C:\Windows\System32")
message str$(GetFileAttributes%)
end

#INCLUDE "KGF_SUB.bas"

Il faut regarder dans la rubrique de gestion des fichiers, dans KGF.chm, pour la doc complète.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 11:14

Merci Klaus !
Mais j'ai déjà fait cet essai en passant par Kernel32.
Voir le code ci-dessous :
Code:
dll_on "kernel32.dll"
LABEL progExit : ON_ERROR_GOTO progExit

WIDTH 0,SCREEN_X/2
MEMO 100 : BAR_BOTH 100
WIDTH 100,WIDTH(0)-20
HEIGHT 100,HEIGHT(0)-80
DIM a$,r%
a$="C:\WINDOWS"
' j'ai recomposé le chemin dans un répertoire test et cela fonctionne
' a$="C:\test\WINDOWS\system32\spool\drivers\w32x86\3\Xerox\Product Data\Public\DCPs\x2DNORH8\V5.0"
DIR_LIST(100,a$,".txt")
MESSAGE "Fini !"
DLL_OFF
END

SUB DIR_LIST(output%,rep$,ext$)
  IF VARIABLE("DIRLIST_i%")=0
    DIM DIRLIST_i%:getObjectId%(ADR(DIRLIST_i%)):DLIST DIRLIST_i%
    DIM DIRLIST_f$,DIRLIST_s$:DIRLIST_s$=DIR_CURRENT$
  END_IF
  ' CAPTION 0,STR$(COUNT(DIRLIST_i%))+" "+DIR_CURRENT$

  IF DIR_EXISTS(rep$)=1
    LPEEK(ADR(rep$)): ' on récupère l'adresse du début de la chaine de caractères
    r%=dll_call1("GetFileAttributesA",LPEEK_return%)
    CAPTION 0,rep$+"  Attr:"+STR$(r%)
    DIR_CHANGE rep$
    DIRLIST_f$=FILE_FIND_FIRST$
    WHILE DIRLIST_f$<>"_"
      IF DIR_EXISTS(DIRLIST_f$)=1
        ITEM_ADD DIRLIST_i%,DIRLIST_f$
        DIR_LIST(output%,DIR_CURRENT$+"\"+DIRLIST_f$,ext$)
        DIR_CHANGE ".."
        DIRLIST_f$=FILE_FIND_FIRST$
        WHILE DIRLIST_f$<>ITEM_READ$(DIRLIST_i%,COUNT(DIRLIST_i%)):DIRLIST_f$=FILE_FIND_NEXT$:END_WHILE
        ITEM_DELETE DIRLIST_i%,COUNT(DIRLIST_i%)
      ELSE
        IF ext$<>""
          IF FILE_EXTRACT_EXTENSION$(DIRLIST_f$)=ext$ THEN ITEM_ADD output%,DIR_CURRENT$+"\"+DIRLIST_f$
        ELSE
          ITEM_ADD output%,DIR_CURRENT$+"\"+DIRLIST_f$
        END_IF
      END_IF
      DIRLIST_f$=FILE_FIND_NEXT$
    END_WHILE
  END_IF
  IF COUNT(DIRLIST_i%)=0
    DIR_CHANGE DIRLIST_s$
    DELETE DIRLIST_i% : FREE DIRLIST_i%:FREE DIRLIST_f$:FREE DIRLIST_s$
  END_IF
END_SUB

SUB getObjectId%(p_r%)
  DIM_LOCAL i%:i%=1
  i% = 1
  WHILE OBJECT_EXISTS(i%) = 1 : i% = i% + 1 : END_WHILE
  POKE p_r%,i%
END_SUB


SUB LPEEK(ad%)
  IF VARIABLE("LPEEK_return%")=0 THEN DIM LPEEK_return%
  DIM_LOCAL Value%,i%,Value$,c%
  Value% = 0
  FOR i%=0 TO 3
    c%=PEEK(ad%+i%)
    IF c%<16 : Value$="0"+HEX$(c%)+Value$
    ELSE:Value$=HEX$(c%)+Value$:END_IF
  NEXT i%
  LPEEK_return% = HEX(Value$)
END_SUB

progExit:
  rep$=DIR_CURRENT$+"\"+DIRLIST_f$
  LPEEK(ADR(rep$)): ' on récupère l'adresse du début de la chaine de caractères
  r%=dll_call1("GetFileAttributesA",LPEEK_return%)
  MESSAGE "erreur "+rep$+CHR$(13)+"Attr:"+str$(r%)
  DLL_OFF
TERMINATE

Le problème, c'est que pour le répertoire qui plante, j'ai un attribut classique (16) et rien d'autre...
Le FILE_ATTRIBUTE_REPARSE_POINT n'est pas positionné, donc ce n'est pas un lien...

il faut peut être regarder du côté des droits d'accès... et encore je n'en suis pas sûr vu que j'arrive sans problème à ouvrir ce répertoire ainsi que les sous-répertoires qu'il contient avec l'explorateur...

EDIT :
Peut être avec advapi32.dll:GetSecurityInfo() ?
Reste à savoir si on peut l'appeler depuis Panoramic... Wink


Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 13:15

Merci à vous deux, j'avais zappé les fonctions de la DLL de Klaus, désolé.

Quand au source de Nardo, il est bien pratique est a sa place dans une librairie sur la gestion de fichiers selon moi car on peut avoir du mal à pondre la même chose tout seul ...

Par contre en effet, ça ne résout pas le problème des droits d'accès de l'utilisateur ou de Panoramic. Normalement, Panoramic devrait avoir les droits de l'utilisateur qui le lance, je pense.

Mais je ne suis peut être pas parti sur la bonne piste, c'était juste une idée pour le problème.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 16:10

Quelques news :
J'ai essayé de récupérer l'attribut "Propriétaire" d'un répertoire.

J'y suis presque arrivé :
- L'appel à GetFileSecurityA() -> ok
- L'appel à GetSecurityDescriptorOwner() -> Ok
- L'appel à LookupAccountSid() -> Impossible, pour cette fonction, il faut passer 7 paramètres...DIR_CHANGE: message d'erreur "Unknown directory" 19

Donc j'abandonne...
car déjà à la base, passer par des Dll ne me conviens pas, et si en plus il faut en créer une spécialement pour cela, cela ne vaut pas le coup :
autant écrire directement en C ou en Delphi la totalité de DIR_LIST (voir même utiliser la commande DIR)


Donc le source de DIR_LIST du 1er post est valable uniquement pour parcourir des répertoires classiques... Wink


Pour ceux qui veulent jeter un coup d'oeil à mon essai :
Code:
DLL_ON "advapi32.dll"
DIM OWNER_SECURITY_INFORMATION% : OWNER_SECURITY_INFORMATION%  = 1
DIM DACL_SECURITY_INFORMATION%  : DACL_SECURITY_INFORMATION%  = 4

DIM f$
DIM r%
f$="C:\test"

DIM lpnLengthNeeded%,lpFileName%
DIM pSecurityDescriptor%
DIM buffer$,i%

DIM name$        :  name$        = STRING$(201," ")
DIM domain$      :  domain$      = STRING$(200," ")
DIM name_len%    :  name_len%    = 0
DIM domain_len%  :  domain_len%  = 0
DIM pOwner%      :  pOwner%      = 0
DIM deUse%
DIM null%        :  null%        = 0
DIM nullStr$

DIM pNullStr%:LPEEK(ADR(nullStr$)):pNullStr%=LPEEK_return%
DIM pName%:LPEEK(ADR(name$)):pName%=LPEEK_return%
DIM pDomain%:LPEEK(ADR(domain$)):pDomain%=LPEEK_return%

lpnLengthNeeded%=4096
' définition d'un buffer de lpnLengthNeeded% octets
' pour recevoir le descripteur
buffer$=STRING$(lpnLengthNeeded%+1," ") : LPEEK(ADR(buffer$)) : pSecurityDescriptor% = LPEEK_return%


' on récupère l'adresse du début de la chaine de caractères
LPEEK(ADR(f$)) : lpFileName%=LPEEK_return%

r% = dll_call5("GetFileSecurityA",lpFileName%,BIN_OR(OWNER_SECURITY_INFORMATION%,DACL_SECURITY_INFORMATION%),pSecurityDescriptor%,lpnLengthNeeded%,ADR(lpnLengthNeeded%))
IF r%<>0
  MESSAGE "ok1: "+str$(lpnLengthNeeded%)
  r% = dll_call3("GetSecurityDescriptorOwner",pSecurityDescriptor%,ADR(pOwner%),adr(null%))
  IF r%<>0
    MESSAGE "ok2: pOwner "+HEX$(pOwner%)+" result:"+str$(r%)

    ' A partir d'ici c'est plus possible...
    ' r%=dll_call7("LookupAccountSid",pNullStr%, pOwner%, pName%, ADR(name_len%), ADR(pDomain%), ADR(domain_len%), ADR(deUse%))
  END_IF
END_IF
 


DLL_OFF

END


SUB LPEEK(ad%)
  IF VARIABLE("LPEEK_return%")=0 THEN DIM LPEEK_return%
  DIM_LOCAL Value%,i%,Value$,c%
  Value% = 0
  FOR i%=0 TO 3
    c%=PEEK(ad%+i%)
    IF c%<16 : Value$="0"+HEX$(c%)+Value$
    ELSE:Value$=HEX$(c%)+Value$:END_IF
  NEXT i%
  LPEEK_return% = HEX(Value$)
END_SUB
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 17:21

En effet, là, je pense que c'est à Jack de prendre le relais si ça l'interesse par rapport au sens dans lequel il veut faire évoluer Panoramic.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 17:44

Salut tout le monde.

@Nardo26
Dans ton programme, SUB DIR_LIST(output%,rep$,ext$) est une routine récursive !
Or, d’après mes tests sur la récursivité, (dans certains cas particuliers) je ne suis pas sûr de son bon comportement, d’autant plus que Jack n’a confirmé ni infirmé l’utilisation de la récursivité.
C’est une simple idée qui m’est venue ainsi.

Si on utilise la commande DIR de MS-DOS, tout marche correctement et il n’y a pas de message d’erreur (voir mon code publié ci-haut).
En plus, je ne crois pas à une question de droit d’accès, mais je me trompe peut-être.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" EmptyVen 30 Nov 2012 - 23:00

@Papydall : Pour DIR_LIST au sujet de la récursivité
C'est la façon dont sont gérés les DIM locaux qui pose problème. Je n'en utilise pas, tout passe par une DLIST comme pile de passage de paramètre et des variables globales.
Donc pas de soucis dans ce cas bien particulier... Wink

Sinon je m'en serait déjà rendu compte lorsque j'ai réalisé la librairie AVL...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





DIR_CHANGE: message d'erreur "Unknown directory" Empty
MessageSujet: Re: DIR_CHANGE: message d'erreur "Unknown directory"   DIR_CHANGE: message d'erreur "Unknown directory" Empty

Revenir en haut Aller en bas
 
DIR_CHANGE: message d'erreur "Unknown directory"
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Liste d'une directory
» Message
» Message
» message d' erreur
» Message de debug sur fct MESSAGE_WARNING_OK

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: