none
Cadenas sur icone d'images

    Question

  • Bonjour,

    Dans mon appli WinForm je compresse des images que j'enregistre ensuite sur disque par une instruction du style :

    Image.Save(FileName, ImgCodec, ImgCodecParam);

    Suivi par un File.Move(source, destination);


    Cela fonctionne bien mais je constate que les icônes des fichiers créés comportent un cadenas dans le bas gauche, visible dans l'Explorateur Windows. Cela n’empêche pas leur ouverture en lecture mais je m'interroge : qu'ai-je donc fait pour le faire apparaître ? 

    Merci de vos idées.


    Alain

    Thursday, March 08, 2012 5:40 PM

Answers

  • Bonjour,

    Sous Vista/Seven un cadena apparait sur le dossier lorsque les droits sont affectés à des utilisateurs spécifiques et que les droits sont supprimés à "tout le monde" ou au groupe "utilisateurs authentifiés" (= C'est donc un dossier qui n'est accessible qu'à un certain nombre d'utilisateur restreints).

    Si vous faites une copie de fichier (via l'explorateur, la commande COPY ou via la méthode File.Copy()), le fichier héritera des droits du (ou des) dossier parent où se trouve le fichier.

    Où copiez vous exactement le fichier ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Proposed as answer by Ciprian DuduialaOwner Tuesday, March 13, 2012 7:06 AM
    • Marked as answer by AchLog Thursday, March 15, 2012 8:30 AM
    Sunday, March 11, 2012 9:41 AM
  • Bonjour,

    Suite à l'intervention de Gilles, j'ai généré le fichier source dans un répertoire de l'utilisateur au lieu du répertoire de l'application. De ce fait, le File.Move suivant produit un fichier dont l'icone ne porte plus de cadenas.

    De cette façon le problème est résolu. Mais est-ce à dire que tous les fichiers générés dans le répertoire applicatif par une application ClickOnce présentent cette caractéristique de partage ?

    Merci Gilles de m'avoir mis sur la piste.


    Alain

    Thursday, March 15, 2012 8:37 AM

All replies

  • Bonjour,

    Voir peut-être http://forum.generation-nt.com/windows-7/resolu-cadenas-dossiers-213601/?s=d1054ba012197c182d0a7697479f210b et http://www.chantal11.com/2010/06/windows-7-suppimer-le-cadenas-sur-un-dossier/ (ce dernier permet de voir si vous avez le même "modèle" de cadenas). Si vous avez besoin de plus de détails sur le sujet, cela serait plutôt pour un forum Windows 7 (pas de lien direct avec votre code).


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    Thursday, March 08, 2012 7:04 PM
  • Merci à Ould Mourad pour sa réponse mais le problème n'est pas là.

    Merci à Patrice Scribe qui m'a mis sur la bonne piste bien que je n'ai pas encore résolu la question. En examinant les attributs de ces fichiers avec cadenas, j'ai remarqué qu'ils portaient tous un attribut "AI" alors que les fichiers sans cadenas ne portent qu'un attribut "A".

    Donc, la question se précise : d'où vient ce "AI" et comment créer un fichier "A" tout seul, par programme ?

    Merci de vos avis.


    Alain

    Thursday, March 08, 2012 8:47 PM
  • attrib /? me dit que l'attribut I est pour les fichier indexé sans contenu (ce qui semble normal pour une image). attrib -I monfichier.jpg permettrait éventuellement de l'enlever pour voir.

    A mon avis c'est vraiment un problème de droits...


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".

    Friday, March 09, 2012 9:15 AM
  • Merci Patrice pour votre réponse.

    J'ai fait l'essai de supprimer cet attribut "I", mais cela n'a pas ôte le cadenas sur l'icone. Cet attribut n'est pas en cause ici.

    Je pense avoir cerné l'origine du problème. En examinant le détail des propriétés de plusieurs fichiers du même répertoire, je me suis aperçu que tous ceux qui présentent ce cadenas NE SONT PAS PARTAGES. Les autres, sans cadenas, sont tous partagés avec le groupe résidentiel.

    Car, en effet, sur ma machine, la racine du répertoire dans lequel se trouve ces fichiers sur mon ordi, est partagée au sein du groupe résidentiel. 

    J'ai fait également deux essais, avec ou sans autre ordinateur connecté au réseau résidentiel : même résultat, le cadenas est toujours là.

    Il faut cerner cette question de partage de fichiers (et des droits qui s'y rapportent) au niveau des instructions de gestion de fichiers du Framework.

    Merci.


    Alain

    Saturday, March 10, 2012 10:02 AM
  • Bonjour,

    Sous Vista/Seven un cadena apparait sur le dossier lorsque les droits sont affectés à des utilisateurs spécifiques et que les droits sont supprimés à "tout le monde" ou au groupe "utilisateurs authentifiés" (= C'est donc un dossier qui n'est accessible qu'à un certain nombre d'utilisateur restreints).

    Si vous faites une copie de fichier (via l'explorateur, la commande COPY ou via la méthode File.Copy()), le fichier héritera des droits du (ou des) dossier parent où se trouve le fichier.

    Où copiez vous exactement le fichier ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Proposed as answer by Ciprian DuduialaOwner Tuesday, March 13, 2012 7:06 AM
    • Marked as answer by AchLog Thursday, March 15, 2012 8:30 AM
    Sunday, March 11, 2012 9:41 AM
  • Bonjour Gilles, merci de votre réponse.

    Comme je l'ai indiqué dans mon message initial, le fichier est créé en deux temps :

    1. Image.Save(FileName, ImgCodec, ImgCodecParam) où Image est un bitmap et FileName un fichier spécifique localisé dans le répertoire de l'application
    2. File.Move(source, destination) où source désigne ce fichier spécifique et destination désigne le fichier final qui est localisé dans "Mes documents\Un dossier".

    "Mes documents" est par ailleurs partagé sur le réseau local, dans le groupe résidentiel.

    En effet, je viens de vérifier qu'en faisant une copie de ce fichier via l'Explorateur Windows, la copie ne présente pas le cadenas.

    Merci de vos idées.

    Cordialement


    Alain


    • Edited by AchLog Sunday, March 11, 2012 10:10 AM correction
    Sunday, March 11, 2012 10:06 AM
  • Bonjour,

    Où se trouve le fichier source ? Sous quel compte fonctionne votre application ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    Sunday, March 11, 2012 10:33 AM
  • L'application est une application WinForm déployée avec ClickOnce. Elle fonctionne sous le compte de l'utilisateur courant.

    Je ne peux pas préciser exactement le répertoire où elle tourne mais peut-être bien dans un répertoire système (cf. ClickOnce)... Le fichier source est localisé dans ce répertoire (le répertoire courant de l'application). Le File.Move le déplace dans un répertoire de l'utilisateur. Est-ce la source du cadenas ?

    Cordialement


    Alain

    Sunday, March 11, 2012 10:54 AM
  • Bonjour,

    Suite à l'intervention de Gilles, j'ai généré le fichier source dans un répertoire de l'utilisateur au lieu du répertoire de l'application. De ce fait, le File.Move suivant produit un fichier dont l'icone ne porte plus de cadenas.

    De cette façon le problème est résolu. Mais est-ce à dire que tous les fichiers générés dans le répertoire applicatif par une application ClickOnce présentent cette caractéristique de partage ?

    Merci Gilles de m'avoir mis sur la piste.


    Alain

    Thursday, March 15, 2012 8:37 AM