0 votes

StreamWriter fonctionne-t-il de manière incohérente avec les chemins relatifs ?

J'essaie d'enregistrer un document LINQ XML à l'aide d'un StreamWriter. L'utilisation du code suivant fonctionne bien lorsque le document est petit (~6kb sur le disque) mais ne fonctionne pas lorsque le fichier est plus grand (~66kb sur le disque). Si je remplace le chemin relatif par un chemin absolu, cela fonctionne bien dans les deux cas. Y a-t-il une raison pour laquelle le chemin relatif devrait échouer avec un fichier plus grand ?

NB : Je n'obtiens pas d'exception, mais aucun fichier n'est créé/écrit à moins que j'utilise un chemin absolu (avec le plus grand ensemble de données - le plus petit ensemble de données fonctionne bien avec un chemin relatif).

XDocument xMap = new XDocument( ... );

// Works for small file but not large
using (StreamWriter writer = new StreamWriter("map.xml", false, new UTF8Encoding(false))) {
    xMap.Save(writer);
}

// Works consistently
using (StreamWriter writer = new StreamWriter(@"c:\data\map.xml", false, new UTF8Encoding(false))) {
    xMap.Save(writer);
}

2voto

SLaks Points 391154

Il n'y a aucune raison pour que l'utilisation d'un chemin relatif fasse échouer le processus pour les fichiers volumineux.

Êtes-vous sûr que le chemin relatif se trouve bien là où vous le pensez ? Si le chemin relatif se trouve sur un réseau, ou si son lecteur est plein, cela pourrait l'expliquer.

Quelle exception obtenez-vous ?


EDITAR : Le répertoire actuel a probablement changé pour une raison quelconque. Vérifiez la valeur de Environment.CurrentDirectory quand il échoue et s'assurer qu'il est ce que vous pensez qu'il est.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X