C# .NET Core OpenFileDialog无法获取FileName问题解决方案

如题所述

在Windows 11环境中使用Visual Studio 2022与.NET Core 7.0.304框架进行WPF开发时,面临一个挑战:尝试使用OpenFileDialog类获取文件路径时,返回的FileName总是为空字符串,且FileOk事件未触发。此问题可通过以下步骤解决:

首先,确保正确配置Filter参数。正确写法为Filter = "All txt|*.txt",确保竖线前面有字。参考案例在WPF-Samples/Windows/CommonDialog at main · microsoft/WPF-Samples中。

在调用OpenFileDialog时,注意返回值类型。应使用System.Windows.Forms命名空间下的DialogResult枚举类型,而非默认的bool?类型。这需要明确指定Microsoft.Win32.OpenFileDialog实例。

由于System.Windows.Forms命名空间在WPF项目中不存在,需通过添加项目引用解决。在C#项目文件中添加"using System.Windows.Forms;"。

解决命名冲突:引入System.Windows.Forms.OpenFileDialog与System.Windows.Forms.DialogResult别名。使用"using"关键字简化调用,并区分System.Windows.Forms.DialogResult与System.Windows.Window.DialogResult。

最终效果验证:使用常规的if判断与事件订阅方式测试。FileOk事件在用户点击打开按钮时调用,适用于提醒用户错误情况。确保弹窗未关闭前触发事件。
温馨提示:内容为网友见解,仅供参考
无其他回答

...OpenFileDialog无法获取FileName问题解决方案
首先,确保正确配置Filter参数。正确写法为Filter = "All txt|*.txt",确保竖线前面有字。参考案例在WPF-Samples\/Windows\/CommonDialog at main · microsoft\/WPF-Samples中。在调用OpenFileDialog时,注意返回值类型。应使用System.Windows.Forms命名空间下的DialogResult枚举类型,而非默认的bool?类型。这需...

C#高手进!OpenFileDialog浏览FTP路径,FileName有细微差别。如何...
在OpenFileDialog中选择FTP文件,首先,Windows一定要将文件放到本机才能确切获得到该文件的详细信息,因此会将该文件从FTP上COPY至本机的缓存设置目录,在Windows7中默认路径为C:\\Users\\xfh378\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\Content.IE5,该文件夹是网络缓存的文件夹,当从FTP上...

c#编程时,每次运行到openfiledialog就出现错误system.runtime.int
个人建议不要使用openFileDialog1->SafeFileNames,改用 String^ pathStr = openFileDialog1->FileName;\/\/获得路径和文件名 然后再通过SubString方法求得想要的信息

C#中窗体中打开一个openFileDialog,选中一个文件后,点击"打开"按钮,获...
在Button1的Click事件里,添加下面的代码 OpenFileDialog dialog = new OpenFileDialog();dialog.ShowDialog();if (!string.IsNullOrEmpty(dialog.FileName)){ button2.Text = dialog.FileName;}

.NET 中的 OpenFileDialog 选择后缀名不显示
你是要只获取文件名字,不要后缀名是吧?OpenFileDialog ofdDialog =new OpenFileDialog();string fileName=ofdDialog.FileName();string name=fileName.Substring(0,LastIndexOf('.'));手机打的可能有错

C#如何将图片存放到SQL SERVER数据库中
this.pictureBox1.Image = Image.FromStream(this.openFileDialog1.OpenFile());\/\/获取当前图片的路径string path = openFileDialog1.FileName.ToString();\/\/将制定路径的图片添加到FileStream类中FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);\/\/通过FileStream对象实例化...

C#的OpenFileDialog怎么用
OpenFileDialog(); openFileDialog.InitialDirectory=@"c:\\"; openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*"; openFileDialog.FilterIndex=1; if (openFileDialog.ShowDialog()==DialogResult.OK) MessageBox("选中的文件是" + openFileDialog.FileName);} ...

c#winform 利用OpenFileDialog打开文件控件找到一个文件然后保存到指定...
OpenFileDialog 一般为文件打开所用,用 OpenFileDialog 保存文件不怎么好吧 SaveFileDialog 一般为文件保存所用

C# 怎么得到找开文件对话框中所选取文件的文件名 求代码
DialogResult result= this.openFileDialog1.ShowDialog();if (result == DialogResult.Yes) \/\/在打开对话框中点周打开按钮执行以下操作 { this.openFileDialog1.FileName;\/\/包含路径的文件名 this.openFileDialog1.SafeFileName;\/\/不包含路径的文件名 } ...

C# opendialog控件怎么提取出所选文件的路径?
name = this.openFileDialog1.FileName;提取路径和文件名 字符串name就是打开文件的路径 比如C:\\Documents and Settings\\Administrator\\桌面\\杂七杂八\\aaaaaaaa.jpg

相似回答
大家正在搜