résultat de CopyDirectory
résultat de CopyDirectory
Quels sont les raisons possibles pour que CopyDirectory retourne 0 ?
J'ai effacé le dossier de destination sur la clée USB et tous les sous-dossiers et fichiers, et j'utilise le code suivantDroopy a écrit :Vérifie que l'arborescence du répertoire dans lequel tu veux le copier existe
car cette fonction ne sait pas la recréer
Code : Tout sélectionner
RepSource$ = "C:\Program Files\PureBasic\Libs\MemoryDll"
RepDestination$ = "L:\PureBasic\Libs\MemoryDll"
Resultat = CopyDirectory(RepSource$, RepDestination$,"*.*",#PB_FileSystem_Recursive)
Debug Resultat
J'ai relancé une nouvelle fois ce code sans rien modifier et le retour se fait avec la valeur 0

J'avais eu le même problème au mois de décembre
Un coup cela fonctionnait très bien et ensuite blème.
http://purebasic.hmt-forum.com/viewtopic.php?t=1966
J'avais alors réalisé qu'il fallait nécessairement indiquer l'emplacement des répertoires, précisément. Mais visiblement ça ne suffit pas. Il faut que je teste à nouveau car si malgré les répertoires précisés ça marche un coup sur deux, ça va râler dans les chaumières...
Denis, as-tu essayé d'utiliser cette fonction en donnant le choix à l'utilisateur des reps source et destination ?
Un coup cela fonctionnait très bien et ensuite blème.
http://purebasic.hmt-forum.com/viewtopic.php?t=1966
J'avais alors réalisé qu'il fallait nécessairement indiquer l'emplacement des répertoires, précisément. Mais visiblement ça ne suffit pas. Il faut que je teste à nouveau car si malgré les répertoires précisés ça marche un coup sur deux, ça va râler dans les chaumières...
Denis, as-tu essayé d'utiliser cette fonction en donnant le choix à l'utilisateur des reps source et destination ?
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Non, car le code que j'utilsie c'est les 3 lignes, ni plus ni moins.Jacobus a écrit : Denis, as-tu essayé d'utiliser cette fonction en donnant le choix à l'utilisateur des reps source et destination ?
Je viens de trouver pourquoi en lisant ton message

Fred, peut-être qu'un flag #PB_ForceWrintingFile pour forcer l'écriture de ces fichiers en lecture seule serait bien.

Dobro a fait un excellent tuto sur le changement d'attribut de fichier, en utilisant l'API. Cela devrait pouvoir dépanner.
Demo de Dobro : (voir Forum Débutants)
Code : Tout sélectionner
buffer.s = Space(#MAX_PATH) ; reserve un buffer
buffer.s ="D:\Bidon\test.txt" ; inscrit le chemin du fichier "test.txt"
;si le fichier était en lecture seule, on le modifie.
SetFileAttributes_(@buffer.s,#FILE_ATTRIBUTE_NORMAL )
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Denis, j'ai ajouté le support du flag #PB_FileSystem_Force pour CopyDirectory(), dis moi si ca marche (avec et sans): www.purebasic.com/denis/FileSystem
Non ca ne va toujours pasFred a écrit :Denis, j'ai ajouté le support du flag #PB_FileSystem_Force pour CopyDirectory(), dis moi si ca marche (avec et sans): www.purebasic.com/denis/FileSystem
retourne 0 avec ou sans le flag;
J'ai modifié un fichier en lecture seule pour qu'il ait la date d'aujourd'hui et j'ai lancé le code avec et sans le flag. Sur la clée, le fichier n'est pas copié., retour 0 dans les 2 cas.
J'ai retiré l'attribut lecture seule sur le fichier de la clée et j'ai lancé le code avec le flag, retour 0 mais cete fois le fichier est copié.
voilà comment j'ai mis le flag, j'utilise PB 3.93 beta 3
Code : Tout sélectionner
RepSource$ = "C:\Program Files\PureBasic\Libs\MemoryDll"
RepDestination$ = "M:\PureBasic\Libs\MemoryDll"
Resultat = CopyDirectory(RepSource$, RepDestination$,"*.*",#PB_FileSystem_Recursive|#PB_FileSystem_Force)
Debug Resultat [quote][/quote]