如何从文本框中提取目的地?C#

本文关键字:提取 目的地 文本 | 更新日期: 2024-09-08 03:45:33

我有一个文本框,它根据用户的选择生成代码。我希望每个可能的代码都与将文件夹复制和移动到另一个文件夹相关。文件夹由另一个文本框选择,该文本框允许用户手动选择要移动到的新文件的路径。我要做的是为文本框1中的每个可能的代码设置一个if/else-if语句字符串。看看下面的代码,看看你找到了什么。除了我在上的声明外,一切似乎都正常

私人作废按钮1_点击。。。

        private void button1_Click(object sender, EventArgs e)
    {
        string destination = textBox1.Text;
        if (textBox2.Text == "111")
         String sourceFile = (@"C:'Program Files (x86)'OrganizerPro'TFSN  Internal Advisor to SWAG PPW"); 
        System.IO.File.Move(sourceFile, destination);
    }

如何从文本框中提取目的地?C#

您的直接问题可能只是作用域问题,即使if未能设置值,您似乎也在尝试移动。

If/else列表不是一个很容易维护的解决方案,每次可能性列表发生变化时,您都需要重新构建和重新部署。通过从应用程序外部读取列表来避免这种情况。

然而,您所描述的本质上是代码和文件名之间的映射。

如果你的映射真的是静态的,并且你很高兴它被烘焙到应用程序中,那么你可以像这个一样定义映射

        private Dictionary<string, string> mapping = new Dictionary<string, string>
    {
        { "111", @"c:'Program Files'File 1.txt" },
        { "112", @"c:'Program Files'File 2.txt" },
        { "113", @"c:'Program Files'File 3.txt" },
    };

您可以使用一些简单的Linq检索值

        var codeLookup = mapping.FirstOrDefault(kv => kv.Key == textBox2.Text);
        if (codeLookup.Key != null)
        {
            System.IO.File.Move(codeLookup.Value, destination);
        }

您的问题不是很清楚。但是在您的代码中有一些不符合逻辑的东西。这是一个代码隐藏方法,因此将该方法的访问修饰符从private更改为protected或public,因为事件点击无法到达该方法

private void button1_Click(object sender, EventArgs e)

protected void button1_Click(object sender, EventArgs e)