Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在OpenFile对话框中使用不同算法打开不同类型的文件?_C#_File Io_Openfiledialog - Fatal编程技术网

C# 如何在OpenFile对话框中使用不同算法打开不同类型的文件?

C# 如何在OpenFile对话框中使用不同算法打开不同类型的文件?,c#,file-io,openfiledialog,C#,File Io,Openfiledialog,我想用OpenFileDialog打开两种类型的文件(.txt和.dat),每种类型的文件都应该用不同的算法打开。 OpenFile方法获取我正在打开的文件流。但是,我能得到那个文件的类型吗?或者有其他方法来区分文件吗?如果我们谈论winforms,那么您就有了可用的文件名,可以在打开文件之前检查扩展名 var dialog = new OpenFileDialog(); if (dialog.ShowDialog() == DialogResult.OK) { var extensi

我想用OpenFileDialog打开两种类型的文件(.txt和.dat),每种类型的文件都应该用不同的算法打开。
OpenFile方法获取我正在打开的文件流。但是,我能得到那个文件的类型吗?或者有其他方法来区分文件吗?

如果我们谈论winforms,那么您就有了可用的文件名,可以在打开文件之前检查扩展名

var dialog = new OpenFileDialog();

if (dialog.ShowDialog() == DialogResult.OK)
{
    var extension = Path.GetExtension(dialog.FileName);

    // do what you need
}

如果您知道扩展名,您可以猜测类型。这是Windows窗体中的吗?我注意到它的
OpenFileDialog.OpenFile
返回一个
(这是没有帮助的),而Silverlight等价物返回一个
FileInfo
(其中包含文件名)。FileInfo也在Windows窗体中工作谢谢,这是一个winform,但我用FileInfo获得了扩展名