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]」如何? –