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

时间:2016-11-03 01:16:27

标签: c# delete-file

我试图删除文件中的内容。但是当我从菜单中选择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");
        }
    }   
}

2 个答案:

答案 0 :(得分:2)

实际上{ exercises: [ { sets: [], movements: [], }, { sets: [], movements: [], }, ... ] } 的{​​{1}}方法会从目录中删除该文件(如果该文件存在于目录中),保留文件并且必须删除其内容意味着您必须使用File.WriteAllText()方法:

  

将创建一个新文件,将内容写入文件,然后   然后关闭文件。如果目标文件已存在,则为   覆盖。

File.Delete

回答评论中的第二个问题:

如果您需要向现有文件添加内容(内容),则必须使用File.AppendAllText()方法,

  

将打开文件,将指定的字符串附加到文件中,然后   然后关闭文件。如果该文件不存在,则此方法创建   一个文件,将指定的字符串写入文件,然后关闭文件。

在这种情况下,代码段应如下所示:

System.IO

答案 1 :(得分:0)

你可以放一行

File.Create("movie.txt");

下面

File.Delete("movie.txt");

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