J'écris un fichier texte et chaque fois que j'écris, je veux effacer le fichier texte.
try
{
string fileName = "Profile//" + comboboxSelectProfile.SelectedItem.ToString() + ".txt";
using (StreamWriter sw = new StreamWriter(("Default//DefaultProfile.txt").ToString(), true))
{
sw.WriteLine(fileName);
MessageBox.Show("Default is set!");
}
DefaultFileName = "Default//DefaultProfile.txt";
}
catch
{
}
Comment puis-je faire cela? Je veux supprimer tout le contenu précédent de DefaultProfile.txt .
En fait, je dois connaître la méthode ou le moyen (un simple nom pourrait être) pour supprimer tout le contenu du fichier texte.
Vous pouvez simplement écrire une chaîne vide dans le fichier existant:
File.WriteAllText(@"Default\DefaultProfile.txt", string.Empty);
Ou remplacez le deuxième paramètre du constructeur StreamWriter
par false
par replace le contenu du fichier au lieu de addending au fichier.
Vous pouvez regarder la méthode Truncate
FileInfo fi = new FileInfo(@"Default\DefaultProfile.txt");
using(TextWriter txtWriter = new StreamWriter(fi.Open(FileMode.Truncate)))
{
txtWriter.Write("Write your line or content here");
}
La technique la plus simple et la plus efficace consiste à utiliser le paramètre booléen du constructeur StreamWriter. Lorsqu'il est défini sur false, le fichier est écrasé avec l'opération en cours. Par exemple, je devais enregistrer la sortie d’une opération mathématique dans un fichier texte. Chaque fois, je voulais SEULEMENT la réponse actuelle dans le fichier texte. Ainsi, lors de la première opération StreamWriter, j'ai défini la valeur booléenne sur false et les appels suivants ont eu la valeur bool val définie sur true. Le résultat est que pour chaque nouvelle opération, la réponse précédente est écrasée et seule la nouvelle réponse est affichée.
int div = num1 / denominator;
int mod = num1 % denominator;
Console.Write(div);
using (StreamWriter writer = new StreamWriter(FILE_NAME, false ))
{
writer.Write(div);
}
Console.Write(".");
using (StreamWriter writer = new StreamWriter(FILE_NAME, true))
{
writer.Write(".");
}
Vous pouvez utiliser FileMode.Truncate
. Le code ressemblera à
FileStream fs = new
FileStream(filePath, FileMode.Truncate, FileAccess.Write )
{
fs.Close();
}
System.IO.File.Delete
ou l'une des surcharges du constructeur System.IO.FileStream
en spécifiant FileMode.Create
Modifiez simplement le second paramètre de true
à false
dans le constructeur de StreamWriter
.
using (StreamWriter sw = new StreamWriter(("Default//DefaultProfile.txt").ToString(), **false**))