我想知道是否可以搜索和读取文件并在消息框中显示文件中的内容。
我想通过其ID搜索文件,该ID是用户已知的。当用户输入ID时,我的程序打开共享相同ID的文件; eg.ID.txt在预设文件夹中。
当它被选中时,它会被读取并放入一个MessageBox,然后它将显示文件中的内容。
有人能告诉我怎么做吗? 感谢。
//Declare variables
int TID;
private void TIDFileCreate_Click(object sender, EventArgs e)
{
StreamWriter outputFile;
outputFile = File.CreateText (TID.ToString()+".txt");
outputFile.WriteLine("Investor :" +" " + InvestorNameLabel.Text);
outputFile.WriteLine("Initial Amount" + " " +AmountLabel.Text);
outputFile.WriteLine("Date Invested" +" " +DateLabel.Text);
outputFile.WriteLine("Period Chosen" + " "+DaysInvestedLabel.Text);
outputFile.WriteLine("Rate Chosen" + " " + RateLabel.Text);
outputFile.WriteLine("Total Interest" + " " +InterestAmountLabel.Text);
outputFile.WriteLine("Transaction Number :" + " " + TransactionIDLabel.Text);
outputFile.Close();
MessageBox.Show("Transaction file for Transaction: " + TransactionIDLabel.Text + "Was Created", "Transaction File");
}
private void SearchButton_Click(object sender, EventArgs e)
{
SearchID = int.Parse(searchTextBox.Text);
string[] lines = File.ReadAllLines(@"C:\Users\Public\TestFolder\"+SearchID+".txt");
}
答案 0 :(得分:1)
你不能在MessageBox.Show()
方法中使用SearchButton_Click
吗?
private void SearchButton_Click(object sender, EventArgs e)
{
SearchID = int.Parse(searchTextBox.Text);
string[] lines = File.ReadAllLines(@"C:\Users\Public\TestFolder\"+SearchID+".txt");
System.Windows.Forms.MessageBox.Show(string.Join("\r\n", lines));
}
答案 1 :(得分:0)
我认为你想做什么你应该读到这个: http://msdn.microsoft.com/en-us/library/ms233843.aspx 或者一些关于序列化的类似文章。 这就是说,如果ID的数量增加,你应该考虑采用一个轻量级的DB,即SQLite,只需命名一个。
答案 2 :(得分:0)
看一下DirectoryInfo
课程。像下面这样的东西应该做你想要的;
DirecectoryInfo dir = new DirectoryInfo(pathToRoot);
FileInfo[] files = dir.GetFiles("Id.txt"); //if using a specific name should return 1 item
TextBox.Text = File.ReadAllText(files.FirstOrDefault().FullName);
请记住,我没有错误处理或任何事情。您必须自己添加,这只是向您显示获取文件和读取其内容的关键类/方法。还有许多其他选项,例如执行GetFiles()
,将该集合保留在内存中,然后再对其进行操作。