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

How can I pull a destination from a textbox? C#

我有一个文本框,可以根据用户制作的 selection 生成代码。我希望每个可能的代码都与将文件夹复制和移动到另一个文件夹相关联。该文件夹由另一个文本框选择,该文本框允许用户手动 select 新文件要移动到的路径。我要做的是为 textbox1 中的每个可能代码设置一个 if/else if 语句的字符串。看看下面我的代码,看看你发现了什么。除了我在

上的陈述外,一切似乎都正常

私有无效button1_click...

        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);
    }

你的问题不是很清楚。但是您的代码中有些不合逻辑的地方。这是一个代码隐藏方法,因此将方法的访问修饰符从私有更改为受保护或 public 导致事件点击不会到达此方法

private void button1_Click(object sender, EventArgs e)

protected void button1_Click(object sender, EventArgs e)

您的直接问题可能只是范围界定之一,即使 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);
        }