[英]How do I get directory of multiple files in multiple variables?
我想从同一目录中读取2个excel文件,并将其完整路径存储在两个不同的变量中。
例如,
C:\\Users\\User\\Desktop\\Folder\\File1.xlsx - First value
C:\\Users\\User\\Desktop\\Folder\\File2.xlsx - Second value
我正在为此一个string
数组,但它不起作用。
请帮忙。
我已经完成以下工作:
string[] location = new string[2];
int i = 0;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
this.openFileDialog1.Filter = "Excel|*.xlsx;*.xlxm;*.xls | All files (*.*)|*.*";
this.openFileDialog1.Multiselect = true;
this.openFileDialog1.Title = "Select Excel Files";
DialogResult dr = this.openFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
foreach (String file in openFileDialog1.FileNames)
{
location[i] = Path.GetDirectoryName(file);
i++;
}
}
我唯一看到的代码错误是,您正在创建OpenFileDialog
的本地实例,然后尝试引用它,就像它是类成员字段一样。
OpenFileDialog openFileDialog1 = new OpenFileDialog();
this.openFileDialog1.Filter = "Excel|*.xlsx;*.xlxm;*.xls | All files (*.*)|*.*";
摆脱this.
如果用户选择多个文件,则代码崩溃的风险很大。 我认为没有理由将“位置”的数组大小直接设置为两个。 我建议您检查Alex K的注释。对话框的.FileNames -property已经是一个数组。 然后获取目录,所有目录都将相同(如Crowcoder所写)。
我认为,最后您需要的是:
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Excel|*.xlsx;*.xlxm;*.xls | All files (*.*)|*.*";
openFileDialog1.Multiselect = true;
openFileDialog1.Title = "Select Excel Files";
DialogResult dr = openFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
string[] location = openFileDialog1.FileNames;
// do something
}
如果需要,请执行以下操作:
string[] location = openFileDialog1.FileNames.Select(x => Path.GetDirectoryName(x)).ToArray()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.