2016-11-03 5 views
1

Я пытаюсь удалить содержимое, находящееся внутри моего файла. Но когда я выбираю 3 из меню, он удаляет мой файл из папки, а не из файла. Можете ли вы мне помочь? Я работаю над этим со вчерашнего дня.Как удалить содержимое файла в C#?

спасибо.

{ 
    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"); 
     } 
    } 
} 
+1

отладчик. отладчик. отладчик. –

+0

это ничего не показывает. Но thnx за то, что убрал время и ответил на мой вопрос :) –

+0

Если отладчик ничего не показывает, вы забыли запустить свою программу. Запустите программу с помощью отладчика, используйте точки останова и шаг за шагом выполните свой код. –

ответ

0

Вы можете просто поставить линию

File.Create("movie.txt"); 

ниже

File.Delete("movie.txt"); 

Он не может работать, как вам это понравилось, но она делает ту же работу, не так ли?

+0

но что создаст файл нет? –

+0

Я хочу просто удалить все внутри файла, когда я выбираю 3 из меню –

+0

Просто добавьте строку и попробуйте сами. :-) – uqji

2

Собственно File.Delete метод System.IO удалит файл из каталога, если он существует в каталоге, чтобы сохранить файл и необходимо удалить его содержимое означает, Вы должны использовать 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"); 
+0

workssss tnx man ur the best –

+0

Прохладный .... Счастливый, чтобы помочь вам –

+0

еще один вопрос –

Смежные вопросы