一串IsNullOrEmpty以组合另一个目录

本文关键字:另一个 组合 IsNullOrEmpty 一串 | 更新日期: 2023-09-27 18:24:08

我想要求找到要组合的目录名(folder1)。但如果目录不存在,我想找到另一个目录名(folder2)来组合。我应该放些什么?这里的代码:

    public static string DataDirectory
    {
        get
        {
            if (string.IsNullOrEmpty(Directory))
                return null;
            return Path.Combine(Directory, "Data/folder1");
        }
    }

谢谢。

一串IsNullOrEmpty以组合另一个目录

Directory.Exists应该可以正常工作

public static string DataDirectory
{
    get
    {
        if (string.IsNullOrEmpty(Directory))
            return null;
        // Use Path.Combine just one time 
        string firstFolder = Path.Combine(Directory, "Data/folder1"); 
        if(Directory.Exists(firstFolder)
            return Path.Combine(firstFolder);
        else
            return Path.Combine(Directory, "Data/folder2");
    }
}

您也可以执行类似的操作,首先检查是否有目录,然后使用linq对目录进行排序并选择第一个元素。

public static string GetDataDirectory(string root)
{
    var directoryList = Directory.GetDirectories(root);
    if (!directoryList.Any())
        return null;
    directoryList = directoryList.OrderBy(dir => dir).ToArray();
    return directoryList.First();
}