如何在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");
        }
    }   
}

如何在c#中删除文件的内容

实际上System.IOFile.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");

它可能不像你喜欢的那样工作,但它做同样的工作,不是吗?