首页 > 解决方案 > 在 C# 中检查是否存在仅具有部分名称的文件夹

问题描述

我创建了一个代码来创建带有两个文本框的文件夹。

我希望能够在创建文件夹之前检查客户编号是否存在。新创建的文件夹将是两个文本框的组合(这已经解决了)。我只需要能够确定该文件夹是否仅与客户编号一起存在,因为它可能是使用(客户编号 + 客户名称)创建的。

当前工作代码:

    {
        string no = textBox1.Text;
        string client = textBox2.Text;
        string carpeta = @"C:\" + no + " " + client;
        string sourcePath = @"C:\main";
        string destinationPath = @"C:\" + no + " " + client;
        textBox1.Clear();
        textBox2.Clear();

        try
        {
            
                if (Directory.Exists(carpeta))
                {
                    DialogResult y;
                    y = MessageBox.Show("Folder already exists\nDo you want to open it?", "AE.", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                    if (y == DialogResult.Yes)
                    {
                        System.Diagnostics.Process.Start(@"C:\" + no + " " + client);
                    }
                    else
                    {
                        Close();
                    }
                }
                else
                {
                    DialogResult x;
                    x = MessageBox.Show("The folder doesn't exist\nWant to create a folder?." + "\n" + no + " " + client, "AE.", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                    if (x == DialogResult.Yes)
                    {
                        Directory.CreateDirectory(carpeta);
                        FileSystem.CopyDirectory(sourcePath, destinationPath, UIOption.AllDialogs);
                        System.Diagnostics.Process.Start(@"C:\" + no + " " + client);
                    }
                    else
                    {
                        Close();
                    }
                }              
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error:" + ex.Message);
        }
    }

标签: c#

解决方案


您也可以每次需要该文件夹时都这样做:

    public static void Main()
    {
        var username = "someuser";
        var usernumber = "ABC123";
        var mainDirectory = @"C:\Path\To\The\Main\Dir";
        var pathToTheUserDirectory = Path.Combine(mainDirectory, $"{username}-{usernumber}");

        // This line will create the directory if not exist or take the existing directory.
        var directoryInfo = Directory.CreateDirectory(pathToTheUserDirectory);

        var directoryPath = directoryInfo.FullName;

        // ...  
        // or
        // directoryInfo.Delete(recursive: true);
    }

推荐阅读