Savefiledialog : HELP !

Signaler
Messages postés
58
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
13 avril 2007
-
Messages postés
58
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
13 avril 2007
-
J'utilise le code suivant pour choisir le nom de fichier d'enregistrement :

private void menuSave_Click(object sender, EventArgs e)
{
timer.Enabled = false;
Stream myStream;
DlgSave.Filter = "Pacman Files (*.pac)|*.pac|All files (*.*)|*.*";
DlgSave.RestoreDirectory = true;
DlgSave.Title = "Enregistrement";
if (DlgSave.ShowDialog() == DialogResult.OK)
{
if ((myStream = DlgSave.OpenFile()) != null)
{ myStream.Close(); }
else
{ name = this.DlgSave.FileName; }
}
SaveGame(name);
timer.Enabled = true;
}

void SaveGame(string SaveName)
{
// *** Ecriture dans le fichier ***
StreamWriter Fichier; // Déclaration
Fichier = File.CreateText(SaveName); // Creation du fichier
...........
}

Il me met une erreur lorsque je veux creer le fichier avec le nom que je recupere plus haut. Si quelqu'un a une idée..

Merci !

8 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
21
Salut,



Méfies-toi des variables qui possèdent le nom "Name".

Name est une propriété d'un bon nombre d'objets, il pourrait y avoir des conflits.

Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
21
Au passage, ta variable "name" dans la première procédure, elle est déclarée où ?
Et quel est le message d'erreur que tu obtiens ?




Manu
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut, en plus de la remarque de econs : lorsque le dialogResult vaut 'No' tu executes quand même la procédure de sauvegarde mais avec une variable name sans doute initialisée par défaut. C'est normal ?
Messages postés
58
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
13 avril 2007

non en effet ce n'est pas normal :D j'essaye de corriger ca mais je me perd un peu.

J'ai changé le nom de la variable et j'ai toujours la même erreur, pas à la compilation mais pendant que le prog tourne ! Il s'arrete sur la commande Fichier = File.CreateText(SaveName); // Creation du fichier
Messages postés
58
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
13 avril 2007

Ma variable SaveName doit bien etre declaré comme une string non ?

private string SaveName = "";
Messages postés
58
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
13 avril 2007

l'erreur c'est : "ArgumentExeption was unhandled Empty path name is not legal."

Merci à tous pour le coup de main
Messages postés
341
Date d'inscription
mercredi 8 juin 2005
Statut
Membre
Dernière intervention
10 février 2009
2
Salut dans ce cas je pense que c'est un probléme dans ton test : si le DialogResult vaut No ou si le test sur le stream non null est vrai, tu exécutes la procédure de sauvegarde avec une variable initialisé par défaut (String.Empty) d'où l'exception.
Messages postés
58
Date d'inscription
mercredi 25 janvier 2006
Statut
Membre
Dernière intervention
13 avril 2007

J'ai trouvé le probleme : vu que if ((myStream = DlgSave.OpenFile()) != null)
{ myStream.Close(); } est toujours juste, le prog ne passait pas par la commande ou je copie le contenu du filename dans le string .. Merci a tous :)