3
我测试了一类具有一个控制台应用程序,并在类中的用户被要求选择一个文件。我创建一个OpenFileDialog类实例,设置过滤器,激活多重选择并调用ShowDialog()。我选择一个文件/ s并且它返回true,但FileName中有一个空字符串FileName和一个0项字符串[]。我错过了什么?OpenFileDialog.FileName返回空字符串
下面是代码:
private static string[] OpenFileSelector(string extension1)
{
OpenFileDialog op = new OpenFileDialog();
op.InitialDirectory = @"C:\";
op.Title = "Seleccione los archivos";
op.Filter = "|*." + extension1;
op.Multiselect = true;
bool? res = op.ShowDialog();
if (res != null && res.Value) return op.FileNames;
return null;
}
扩展是从来没有空,我已经有多个文件扩展尝试。为了记录,我在Win32之前使用了Forms类,它工作正常。
尝试以下 'op.Filter ='文本文件(* .txt)| * .TXT |所有文件(*。*)| *'如果你需要添加不同的类型,那么你应该很可能使用'string.Format'函数来构建过滤器,为什么你不首先看这里[MSDN OpenFileDialog.Filter Property](https://msdn.microsoft.com/en-us/library/ system.windows.controls.openfiledialog.filter(v = vs.95).aspx) – MethodMan
控制台模式应用程序对于此对话来说是一个相当不友好的地方,它需要一个STA线程。你有一个错误,你的过滤器属性分配不正确。考虑op.Filter = extension1 +“files | *”。 + extension1; –
是否足以测试null和res而不是res.Value? “return op.FileNames [0]”如何? –