我试图删除文件中的内容。但是当我从菜单中选择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");
}
}
}
答案 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");
它可能不像你喜欢的那样工作,但它做同样的工作,不是吗?