每当我关闭File.txt
时,我想在file.exe
内写一个计数器
例如,在我第一次关闭它时,它必须写入1,第二次而不是1,它必须是2,第三次必须是3,依此类推。
但问题是,在任何给定时间,编译器必须读取存储在文件中的数字,增加它,然后写入。
这是我的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;
namespace check
{
public partial class Form1 : Form
{
public string[] line = { "1", "2", "3", "4", "5", "6", "7", "8", "9","10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20" };
public int i = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
FileStream textfile = new FileStream(@"C:\TtAL.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
var Reader = new StreamReader(textfile);
var Writer = new StreamWriter(textfile);
i = Convert.ToInt32(File.ReadAllText(@"C:\TtAL.txt"));
if (File.ReadAllText(@"C:\TtAL.txt") == null) { i = -1; }
i ++;
File.WriteAllText(@"C:\TtAL.txt", line[i]);
MessageBox.Show(20 - Convert.ToUInt32(line[i]) + " times remained.");
textfile.Close();
}
}
}
答案 0 :(得分:1)
这样的事情会起作用:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
int i = 1;
if (File.Exists(@"C:\TtAL.txt")) //if there is a file try to use it
{
if (int.TryParse(File.ReadAllText(@"C:\TtAL.txt"), out i)) //if you can get a number use it
i++;
}
File.WriteAllText(@"C:\TtAL.txt", i.ToString());
}