Je pense qu'après des constatations faites sur les fichiers, vous seriez intéressé sur ce sujet. Il peut répondre ou résoudre quelques problèmes, mais ne prétend à rien. Je ne vais pas faire de commentaire sur mon intervention, je pense qu'il faut parfois sortir de ses idées pour s'améliorer.
Voila! Je suis intervenu ici après des problèmes avec mon pc. Je ne suis pas le seul a avoir été dans ce cas. Je suis en train de revoir mes méthodes de travail concernant la sauvegarde de mes fichiers. Je me demandais comment par exemple on pouvait savoir si un fichier était déjà sauvegardé pour éviter de refaire une copie systématique de celui-ci. Par exemple, si on sauvegarde sur une clé flash, petit à petit, l'écriture sur cette dernière finie par la détériorer. Aussi moins on écrit dessus, mieux cela est.
On peut aussi par exemple avoir un disque virtuel de travail, et avoir besoin de faire une copie de ses fichiers de sauvegarde à heure fixe pour ne pas êtes victime d'un crash et perdre ses données. Il y a plein de raison pour se poser la question et palier à ses problèmes.
En regardant dans l'aide j'ai remarqué:
FILE_ARCHIVE et
FILE_ARCHIVE_OFF. Je me suis toujours demandé pourquoi on avait des fichiers archives et d'autres non. J'ai enfin pris le temps de rechercher sur le web, et j'ai compris le but de cet attribut. Ainsi, chaque fois par exemple on sauvegarde un programme, celui-ci a l'attribut ARCHIVE. Ceci permet à un programme de backup de savoir si ce fichier est "neuf" et alors on fait une copie. Je suis content, j'ai enfin compris l'intérêt de cet attribut.
Me voila riche d'un nouvel enseignement. Bien, en regardant les commande Panoramic, on voit qu'on a
FILE_ARCHIVE, FILE_SYSYEM, FILE_HIDE etc.... et l'inverse. Oui mais à quoi peuvent servir ces commandes? On en a pas pour lire les attributs des fichiers. J'ai téléchargé kgf pour voir l'aide, et Klaus est formidable, il a prévu le cas. Il s'agit de
GetFileAttributes.
Pour faire une sauvegarde d'un fichier qui a été modifié, il suffit de regarder son attribut. Si il est archivé, on fait une copie de ce dernier. Ensuite ce fichier, on le désarchive par
FILE_ARCHIVE_OFF, afin que la prochaine fois, on le laisse de côté. Pour savoir si un fichier est archivé ou non:
- Code:
-
' teste avec la dll de Klaus, pour voir comment lire un fichier archive
' ===================================================================== '
kgf() : ' ouvre avec dll_on
dim res%,fichier$
open_dialog 1
fichier$ = file_name$(1)
if fichier$ <> "_"
' file_archive_off fichier$
' file_system_off fichier$
res% = dll_call1("GetFileAttributes",adr(fichier$))
' message "syetem_off archive_on :" + str$( res%)
if bin_and(res%,32)>0 then message "fichier archivé" :else:message "fichier non archive"
end_if
J'ai mis sub kgf() , à la place il faut y mettre dll_on "nom_dossier_kgf.dll"Ensuite à partir d'un fichier qui aurait par exemple la liste des fichiers à prendre ne compte, ou tout simplement d'un dossier spécifique, on fait un programme qui boucle sur les noms, vérifie l'attribut de chacun d'eux, et selon copie ou non le fichier, en changeant ensuite son attribut.
Maintenant j'ai fait une autre constatation, et là c'est à vérifier, cela pourrait résoudre des problèmes de blocage d'ouverture ou d'autre de fichier.
J'ai constaté en faisant
FILE_SYSTEM sur le nom d'un source bas, il était impossible de sauvegarder ce dernier. L'accès est interdit. Donc pour ce fichier, j'ai fait ensuite:
FILE_SYSTEM_OFF, et j'ai pu ainsi débloquer ce dernier. Il sera intéressant de faire un essai la prochaine fois qu'un fichier quelconque est bloqué, si on peut mettre l'attribut OFF sur system.
(Peut-être faudrait-il que Jack apporte une nouvelle commande pour les les attributs fichier.)