【问题标题】:Removing file extension before adding to listBox c# [duplicate]在添加到listBox c#之前删除文件扩展名[重复]
【发布时间】:2016-04-15 09:33:07
【问题描述】:

我目前正在创建一个笔记应用程序。我正在尝试将项目添加到没有文件扩展名的列表框中,我尝试了 GetAllFilesWithoutExtensions,但没有运气。我目前可以添加它们,但似乎无法删除扩展。任何建议将不胜感激......

 DirectoryInfo dir = new DirectoryInfo("../Debug/");
 FileInfo[] files = dir.GetFiles("*.txt");

 foreach (FileInfo file in files)
 {
    listBox1.Items.Add(file);
 }

【问题讨论】:

  • 你试过了吗? Path.GetFileNameWithoutExtension(file.Name)
  • 嗨@Nikola.Lukovic,是的,很遗憾,它不起作用。
  • 你能告诉我们你运行Path.GetFileNameWithoutExtension(file.Name)时得到的输出吗?
  • 好的,当使用“Path.GetFileNameWithoutExtension(file.Name)”时,程序无法将关联的 .txt 文件加载到 RichTextBox 中...与扩展名一起使用...我假设我只是想隐藏扩展名。
  • ListBox 的这个使用应该在原始问题中;那么你就不会得到所有那些字里行间但没有抓住重点的答案;-)

标签: c# winforms visual-studio


【解决方案1】:

您可以使用 LINQ 和 System.IO.Path.GetFileNameWithoutExtension

var fileNamesWithoutExtension = files
    .Select(fi => System.IO.Path.GetFileNameWithoutExtension(fi.Name));
foreach(string fn in fileNamesWithoutExtension)
{
    // ...
}

【讨论】:

    【解决方案2】:

    你可以使用System.IO.Path.GetFileNameWithoutExtension(string)

    MSDN

    【讨论】:

      【解决方案3】:

      创建一个类来帮助你:

      class FInfo
      {
          public FileInfo Info { get; set; }
      
          public FInfo (FileInfo fi)    { Info = fi; }
      
          public override string ToString()
          {
              return Path.GetFileNameWithoutExtension(Info.FullName);
          }
      }
      

      现在用该类的实例填充ListBox

      DirectoryInfo dir = new DirectoryInfo(yourPath);
      FileInfo[] files = dir.GetFiles(yourFilter);
      
      foreach (FileInfo file in files) listBox1.Items.Add(new FInfo(file));
      

      现在您可以访问完整的FileInfo 数据:

      private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
      {
          FInfo fi = listBox1.SelectedItem as FInfo;
          if (fi != null) Console.WriteLine(fi.Info.FullName); // do your thing here!
      }
      

      ListBox 将使用ToString 方法仅显示不带路径或扩展名的文件名..

      【讨论】:

        猜你喜欢
        • 2014-06-12
        • 2017-02-23
        • 2011-11-24
        • 1970-01-01
        • 1970-01-01
        • 2011-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多