[ C# ] problème "access denied"

problème "access denied" [ C# ] - C#/.NET managed - Programmation

Marsh Posté le 24-07-2004 à 10:16:23    

Voilà, alors ce que je veux faire est très simple. Créer un fichier bitmap (.bmp) à partir d'une image JPEG ou autre. J'ai crée une procédure pour ça (voire ci-dessous), mais malheureusement a chaque fois que je veux créer le FileStream j'obtiens toujours le même message d'erreur 'Access to the path "c:\" is denied.' et ce sur n'importe quel emplacement sur mon disque dur.
 
Je suis sous Windows XP pro avec le compte Administrateur, c'est un projet Windows application. C'est sûrement un truc très con a modifié quelque part, mais je sais pas ou ni quoi. Donc si quelqu'un sait merci d'avance.
 
 
private void makeWallpaper(string path, string newPath)
{
    try  
    {
        if (File.Exists(newPath))
        File.Delete(newPath);
 
        FileStream fs=new FileStream(newPath,FileMode.CreateNew);
 
        Bitmap myBitmap = new Bitmap(path);
        myBitmap.Save(fs,ImageFormat.Bmp);
 
        fs.Close();
        myBitmap=null;
    }  
    catch(Exception e)  
    {
        MessageBox.Show(e.Message);
    }
}

Reply

Marsh Posté le 24-07-2004 à 10:16:23   

Reply

Marsh Posté le 24-07-2004 à 11:09:54    

@"c:\chemin\vers\le\fichier.bmp"

Reply

Marsh Posté le 24-07-2004 à 11:16:38    

il faut que l'utilisateur ASPNET aie les droits d'écriture sur ce répertoire.


Message édité par jagstang le 24-07-2004 à 11:17:09

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 24-07-2004 à 13:26:12    

JagStang a écrit :

il faut que l'utilisateur ASPNET aie les droits d'écriture sur ce répertoire.


 
C'est pas un projet ASPNET, mais une bonne vielle application Windows basic.

Reply

Marsh Posté le 24-07-2004 à 14:13:28    

pardon :D


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-07-2004 à 00:23:59    

Si c'est toi qui déclare a la main path et newPath, pense soit a mettre
string path = @"C:\ton\chemin";
ou bien string path= "C:\\ton\\chemin\\";
 
sinon j'ai essayé de recréer ton script sur mon pc , et perso pas d'erreur donc la seule chose que je peux te dire c'est de verifier tes path

Reply

Marsh Posté le 27-07-2004 à 11:31:57    

x1800+ a écrit :

Si c'est toi qui déclare a la main path et newPath, pense soit a mettre
string path = @"C:\ton\chemin";
ou bien string path= "C:\\ton\\chemin\\";
 
sinon j'ai essayé de recréer ton script sur mon pc , et perso pas d'erreur donc la seule chose que je peux te dire c'est de verifier tes path


 
Non il n’y a pas de problème avec le path. Mais j'ai essayé de faire fonctionner ce bout de code séparément. et effectivement, il fonctionne très bien. le problème se situe ailleurs, je sais pas encore ou, mais je vais approfondir le sujet...
 
Merci de vos réponses à tous.

Reply

Marsh Posté le 27-07-2004 à 14:32:18    

Le problème peut venir si auparavant tu as effectué une opération sur newPath, genre exécuté cette même fonction une première fois, et à la seconde exécution hop ça marche plus. Si c'est ça, c'est parce que malgré ton myBitmap=null et la fin du bloc où tes variables sont déclarées, le bitmap vit encore, tant qu'il a pas été garbage collecté. Il faut appeler Dispose ou mieux, utiliser using.

Code :
  1. using ( FileStream fs = new FileStream(newPath,FileMode.CreateNew) )
  2. {
  3.     using ( Bitmap myBitmap = new Bitmap(path) )
  4.     {
  5.         myBitmap.Save(fs,ImageFormat.Bmp);
  6.     }
  7.     fs.Close();
  8. }


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 27-07-2004 à 14:35:59    

si tu fais un using, pas besoin de .Close()

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed