从文件位置自动将文本加载到文本框

时间:2017-07-17 23:56:29

标签: c#

所以我正在尝试从文件位置加载文本,所以我需要从创建文件位置开始,然后使用该文件位置将文本加载到我的文本框中。

所以我想创建文件位置... @“C:\ Program Files(x86)\ CPA \ Text [number] .txt”

然后在那个位置我想要我的[编号]文本文件

one.txt
two.txt
three.txt
four.txt
five.txt
six.txt
seven.txt
eight.txt

然后我需要该工具自动将文本文件加载到文本框

我的按钮用于保存我正在使用的文字......

SaveFileDialog saveFileDialog = new SaveFileDialog();
        saveFileDialog.Filter = "one|*.txt"; //Should I name it 'one.txt' instead ?
        if (saveFileDialog.ShowDialog() != DialogResult.OK)
            return;
        File.WriteAllText(saveFileDialog.FileName, this.textBox1.Text);

我打算使用以下内容获取位置...

if (File.Exists(@"C:\Program Files (x86)\CPA\Text"))
            {
                //Load text to textboxes

            }

但我不知道如何在不要求用户使用打开文件对话框选择文本文件的情况下自动将文本加载到文本框

1 个答案:

答案 0 :(得分:0)

您可以使用File.ReadAllText方法将文本文件的内容加载到字符串变量中。您只需将此方法传递给文件,它将打开文件,读取内容,将其作为字符串返回,然后关闭文件。

您可以考虑将文件与可执行文件一起保存在目录中。通过这种方式,它很容易找到并且始终靠近你的exe。

要获取可执行文件所在的目录,可以执行以下操作:

// This requires "using System.Reflection" at the top of your .cs file
var thisExeDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

然后你可能希望在该目录下面有一个文件夹来存储你的文件,比如" FileData"目录:

var myFileDirectory = Path.Combine(thisExeDirectory, "FileData");

如果你不想这样做,你可以做你正在做的事情:

var myFileDirectory = @"C:\Program Files (x86)\CPA\Text[number].txt";

无论如何,这里有一个如何将文件内容读入文本框的示例:

// Get the full path to the file
var filePath = Path.Combine(myFileDirectory, "one.txt");

// If it exists, write the contents to a textbox
if (File.Exists(filePath))
{
    textBox1.Text = File.ReadAllText(filePath);
}

现在稍后,如果要使用文本框的内容覆盖文件,可以使用名为File.WriteAllText的类似方法:

// If the directory does not exist, create it
Directory.CreateDirectory(myFileDirectory);

File.WriteAllText(filePath, textBox1.Text);