C#使用OpenFileDialog多选文件时文本框显示System.String[]如何解决
问题原因
OpenFileDialog的FileNames属性是string[](字符串数组)类型,数组的默认ToString()实现只会返回自身的类型名称System.String[],不会输出数组内的元素内容,这就是你遇到异常显示的核心原因。
修复方案
使用string.Join()方法把数组内的所有文件路径按你需要的分隔符拼接成单个字符串,再赋值给文本框即可。
方案1:分号分隔路径(适配单行文本框)
private void filePickerButton_Click(object sender, RoutedEventArgs e) { // Create the OpenFileDialog object OpenFileDialog dialog = new OpenFileDialog(); dialog.InitialDirectory = "C:\\Users"; dialog.Multiselect = true; // Check to see if we have a result if (dialog.ShowDialog() == true) { // 用分号拼接所有选中的文件路径 filePickerTextBox.Text = string.Join(";", dialog.FileNames); } else { outputTextBox.Text = "Operation cancelled." + "\n" + outputTextBox.Text; } }
方案2:换行分隔路径(适配多行文本框)
如果你的文本框支持多行显示,先把filePickerTextBox的AcceptsReturn属性设为true,再修改赋值逻辑:
// 用换行符拼接所有选中的文件路径,每个路径单独占一行 filePickerTextBox.Text = string.Join("\n", dialog.FileNames);
内容的提问来源于stack exchange,提问作者user15919119
相关产品推荐
相关产品推荐

