c# - 文件名模式在 OpenFileDialog 中不起作用

标签 c# winforms

几天前我开始学习编程,我正在工作/练习一个同时复制和粘贴多个文件的程序,但是在让它在多个不同的扩展上工作时遇到了麻烦

这是代码

命名空间实践
{
公共(public)部分类Form1:表格
{
公共(public)表格1()
{
初始化组件();
}
公共(public)字符串[] getFlies
{
得到;
放;
}
公共(public)字符串获取目录
{
得到;
放;
}
公共(public)字符串 [] 获取扩展
{
得到;
放;
}
私有(private)无效按钮1_Click(对象发送者,EventArgs e)
{
尝试
{
OpenFileDialog getfiles = new OpenFileDialog();
getfiles.Filter = "所有文件 (.)|.";
getfiles.FilterIndex = 1;
getfiles.Multiselect = true;
if (getfiles.ShowDialog() == DialogResult.OK) { getFlies = getfiles.FileNames; foreach (string file_name in getFlies) { listBox1.Items.Add(file_name); getextension = Path.GetExtension(getFlies); } } } catch { MessageBox.Show("Error"); } } private void button2_Click(object sender, EventArgs e) { FolderBrowserDialog fbb = new FolderBrowserDialog(); fbb.Description = "Select a folder"; if (fbb.ShowDialog() == DialogResult.OK) { getdirectory = fbb.SelectedPath; } } private void button3_Click(object sender, EventArgs e) { foreach (object item in listBox1.Items) { File.Copy(getFlies.ToString(), getdirectory); } } private void button4_Click(object sender, EventArgs e) { listBox1.Items.Clear(); } }
我该怎么办?

最佳答案

我建议您将变量的名称更改为更好的名称。但是为了与您的代码保持一致,我使用了您选择的名称。
好的,你可以这样做:

// instead of string[]. 
public FileInfo[] getFlies { get; set; } // I suggest to change the name, maybe to Files? 


// in your button1_click method, after the DialogResult is OK
// getFiles in the dialog and getFlies is the array.
public void button1_Click(object sender, EventArgs e)
{
    var getfiles = new OpenFileDialog();  // again, change the name...maybe for dialog?
    getfiles.Filter = "All Files (*.*)|*.*"; // I fixed it. You missed the '*' .
    // more dialog initialization

    if(Dialog.Result.OK == getfiles.ShowDialog())
    {
        getFlies = getfiles.FileNames.Select( f => new FileInfo(f)).ToArray();
    }
}


// Now, in button3_click
void button3_Click(object sender, EventArgs e)
{
    foreach(var file in getFlies)
    {
        File.Copy(file.FullName, Path.Combine(getdirectory, file.Name));
    }
}

关于c# - 文件名模式在 OpenFileDialog 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466750/

相关文章:

c# - 我们如何在子查询 SQL Server 中分配局部变量

vb.net - itextsharp : how do i position a table?

c# - Windows 窗体 TreeView 始终选择焦点上的节点

c# - 部分类调试

c# - 是否可以从深度位图中仅提取玩家的深度像素?

c# - Silverlight 中位图和图形(在 Windows 窗体中找到)的等价物是什么?

c# - 在管理员帐户中运行 Visual Studio 时无法触发拖放事件

c# - 是否可以测量 Winforms 表单出现需要多长时间?

c# - 存储过程不会返回 0

c# - 为什么有时 DateTime.TryParse 工作而其他时间只有 DateTime.ParseExact 工作?