如何在c#中删除文件的内容
本文关键字:文件 删除 | 更新日期: 2023-09-27 18:15:58
我试图删除我的文件内的内容。但是当我从菜单中选择3时,它会从文件夹中删除我的文件,而不是从文件中删除。你能帮我一下吗?我从昨天开始就在做这件事。
谢谢。
{
class test
{
static void Main(string[] args)
{
movie[] arr = new movie[1];
bool exit = false;
while (exit == false)
{
menu();
string choice = Console.ReadLine();
switch (choice)
{
case "1":
add(ref arr);
break;
case "2":
saveData(ref arr);
break;
case "3":
deleteData(ref arr);
break;
case "4":
exit = true;
break;
}
}
}
// adding data
public static void add(ref movie[] arr)
{
StreamWriter writer = new StreamWriter("movie.txt");
writer.WriteLine(arr.Length + 1);
// creat new object
movie temp = new movie();
// collect data fromuser
Console.WriteLine("enter title");
temp.Title = Console.ReadLine();
Console.WriteLine("enter director");
temp.Director = Console.ReadLine();
Console.WriteLine("enter year");
temp.Year = Convert.ToInt32(Console.ReadLine());
// write the new data to text file
writer.WriteLine(temp.Title);
writer.WriteLine(temp.Director);
writer.WriteLine(temp.Year);
writer.Close();
//
}
// save data
public static void saveData(ref movie[] arr)
{
StreamReader reader = new StreamReader("movie.txt");
int size = Convert.ToInt32(reader.ReadLine());
arr = new movie[size];
for (int index = 0; index < arr.Length; index++)
{
arr[index] = new movie();
arr[index].Title = reader.ReadLine();
arr[index].Director = reader.ReadLine();
arr[index].Year = Convert.ToInt32(reader.ReadLine());
}
reader.Close();
}
public static void deleteData(ref movie[] arr)
{
if(File.Exists("movie.txt"))
{
File.Delete("movie.txt");
}
else
{
;//donothing
}
}
// menu
private static void menu()
{
Console.WriteLine("plz chosse one of the following options to continue ");
Console.WriteLine("1: Add Movie");
Console.WriteLine("2: Save data");
Console.WriteLine("3: delete Movie");
Console.WriteLine("4: Exit");
}
}
}
实际上System.IO
的File.Delete
方法将删除目录中存在的文件,要保留文件而必须删除其内容意味着您必须使用File.WriteAllText()
方法:
,它将创建一个新文件,并将内容写入该文件,然后然后关闭该文件。如果目标文件已经存在,则为重写。
string path="path to your file"; // Let it be "movie.txt"
File.WriteAllText(path, "");
回答评论中的第二个问题:
如果你需要添加一些东西(内容)到现有的文件,那么你必须使用File.AppendAllText()
方法,
打开一个文件,将指定的字符串附加到文件中,然后然后关闭该文件。如果文件不存在,此方法创建一个文件,将指定的字符串写入文件,然后关闭文件。
在这种情况下,代码片段应该像这样:
File.AppendAllText(path, "Some content to append");
你可以直接写一行
File.Create("movie.txt");
下面的File.Delete("movie.txt");
它可能不像你喜欢的那样工作,但它做同样的工作,不是吗?