web-dev-qa-db-fra.com

Écrire un fichier dans un dossier temporaire

Je veux utiliser StreamWriter pour écrire un fichier dans le dossier temporaire.

Le chemin peut être différent sur chaque PC, alors j’ai essayé d’utiliser %temp%\SaveFile.txt mais ça n'a pas marché.

Comment puis-je sauvegarder dans le dossier temporaire en utilisant des variables d'environnement?

Et par exemple, puis-je utiliser une variable d'environnement pour stocker des fichiers dans %appdata%?

53
BlueRay101
87
EkoostikMartin

La classe Path est très utile ici.
Vous avez deux méthodes appelées

Path.GetTempFileName

Path.GetTempPath

cela pourrait résoudre votre problème

Ainsi, par exemple, vous pouvez écrire: (si le nom de fichier exact ne vous dérange pas)

using(StreamWriter sw = new StreamWriter(Path.GetTempFileName()))
{
     sw.WriteLine("Your error message");
}

Ou si vous devez définir votre nom de fichier

string myTempFile = Path.Combine(Path.GetTempPath(), "SaveFile.txt");
using(StreamWriter sw = new StreamWriter(myTempFile))
{
     sw.WriteLine("Your error message");
}
35
Steve

Vous pouvez récupérer dynamiquement un chemin temporaire en utilisant ce qui suit et il est préférable de l’utiliser plutôt que d’utiliser une valeur de chaîne codée en dur pour l’emplacement temporaire. Il renverra le dossier ou le fichier temporaire comme vous le souhaitez.

string filePath = Path.Combine(Path.GetTempPath(),"SaveFile.txt");

ou

Path.GetTempFileName();
6
Thilina H

System.IO.Path.GetTempPath ()

Le chemin spécifié par la variable d'environnement TMP. Le chemin spécifié par la variable d'environnement TEMP. Le chemin spécifié par la variable d'environnement USERPROFILE. Le répertoire Windows.

2
Pacman

Pour% appdata%, jetez un oeil à

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
1
user3014562