我很抱歉这个奇怪的标题。我正在开发一个 WPF 应用程序,我应该通过单击按钮从系统加载文本文件并读取文件的内容并在文本框中显示文本文件的内容。
我做了以下事情:
XAMl:
<TextBox Grid.Column="2" Text="{Binding Path=WriteMessage, Mode=TwoWay}" Name="MessageWrite" />
<Button Content="Load" Command="{Binding Path=LoadFileCommand}" Name="button8" />
视图模型类:
// Method gets called when LOAD Button is Clicked
private void ExecuteLoadFileDialog()
{
FileReader mFile = new FileReader(); // Its a Class Which Reads The File
var dialog = new OpenFileDialog { InitialDirectory = _defaultPath };
dialog.ShowDialog();
dialog.DefaultExt = ".txt";
dialog.Filter = "Text Files(*.txt)|*.txt|All(*.*)|*";
string path;
path = dialog.FileName;
using (StreamReader sr = new StreamReader(path))
{
WriteMessage = sr.ReadToEnd();
}
}
文件阅读器类:
class FileReader : I2CViewModel.IFileReader
{
public string Read(string filePath)
{
byte[] fileBytes = File.ReadAllBytes(filePath);
StringBuilder sb = new StringBuilder();
foreach (byte b in fileBytes)
{
sb.Append(Convert.ToString(b, 2).PadLeft(8, '0'));
}
return sb.ToString();
}
}
我在这里面临的问题是,当我单击加载按钮时,它会打开一个文件对话框,但它会显示所有文件,而不仅仅是显示 .Txt 文件。如何确保只有 .txt 文件可见?
其次,当我单击按钮时,会弹出对话框,如果单击取消按钮,应用程序会崩溃并显示“空路径名不合法”。这是指向using (StreamReader sr = new StreamReader(path))
我怎样才能清除这些问题?:)