【问题标题】:显示从最后一个文件到第一次保存的列表
【发布时间】:2022-01-22 16:15:28
【问题描述】:

我想反转 Combobox 中显示的结果。 最后保存的文件会最先出现,目前正好相反。它与以下代码一起出现:

string[] files = Directory.GetFiles(@"C:\Test\",*.TXT");

foreach (string file in files)
{
  comboBox1.Items.Add(Path.GetFileNameWithoutExtension(file));
}

根据我的研究,解决方案是:

.OrderByDescending(p => p.CreationTime).ToArray(); 

在某处添加。但我不知道。我的每一次尝试都没有成功。

目前:

101-00.06.52.TXT
101-00.06.54.TXT
101-00.06.56.TXT

期望的结果:

101-00.06.56.TXT
101-00.06.54.TXT
101-00.06.52.TXT

有人知道吗?

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    使用DirectoryInfo 类中的GetFiles() 方法代替静态方法Directory.GetFiles() 方法。在上面申请OrderByDescending()


    Directory.GetFiles():

    返回满足指定的文件名 标准

    对比

    DirectoryInfo.GetFiles():

    从当前目录返回一个文件列表


    喜欢,

    DirectoryInfo di = new DirectoryInfo(@"C:\Test\"); //Get the Directory information
    
    var allTxtFiles = di.GetFiles("*.txt") //Get all files based on search pattern
         .OrderByDescending(p => p.CreationTime)  //Sort by CreationTime
         .Select(x => x.Name);  //Select only name from FileInfo object
    
    foreach (string file in allTxtFiles)
    {
        comboBox1.Items.Add(Path.GetFileNameWithoutExtension(file));
    }
    

    【讨论】:

    • 哦,是的,这是一个很好的解决方案。
    【解决方案2】:

    我不知道你问题的原因。但是如果你想得到正确的结果很简单。先试试这个:

    string[] files = Directory.GetFiles(@"C:\Test\",*.TXT");
    comboBox1.ItemsSource = files;
    

    如果结果不正确。使用这个:

    string[] files = Directory.GetFiles(@"C:\Test\",*.TXT");
    files = files.Reverse();
    comboBox1.ItemsSource = files;
    

    【讨论】:

      猜你喜欢
      • 2013-08-02
      • 1970-01-01
      • 2015-10-19
      • 2016-03-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2011-12-08
      • 2023-03-09
      相关资源
      最近更新 更多