C# 检查在列表框中单击的文件类型

C# 检查在列表框中单击的文件类型,c#,string,winforms,listbox,C#,String,Winforms,Listbox,如何在列表框中检查对象的文件类型 我从一个在线服务器返回一个字符串列表,只想在我点击一个末尾有.folder文件类型的项目时触发一个事件 我试过找,但什么也找不到 有人可以请提供一个链接或示例代码,这样我就可以实现我想实现的 这应该适合你 private void listBox1.SelectedIndexChanged(object sender,EventArgs e) { string item=listBox1.SelectedItem.ToString();

如何在列表框中检查对象的文件类型

我从一个在线服务器返回一个字符串列表,只想在我点击一个末尾有.folder文件类型的项目时触发一个事件

我试过找,但什么也找不到


有人可以请提供一个链接或示例代码,这样我就可以实现我想实现的

这应该适合你

   private void listBox1.SelectedIndexChanged(object sender,EventArgs e)
    {
     string item=listBox1.SelectedItem.ToString();
     int index=item.LastIndexOf('.');
     if(index>=0)//It's a valid file
      {
       string extension=item.Substring(index+1,item.Length-index-1);
       if(extension=="folder")
       {
        MessageBox.Show("Yes it's a .folder");
       }
      }
     else if(index==-1)//Not a valid file
      {
        MessageBox.Show("The selected file is invalid.");
      }
    }

这应该对你有用

   private void listBox1.SelectedIndexChanged(object sender,EventArgs e)
    {
     string item=listBox1.SelectedItem.ToString();
     int index=item.LastIndexOf('.');
     if(index>=0)//It's a valid file
      {
       string extension=item.Substring(index+1,item.Length-index-1);
       if(extension=="folder")
       {
        MessageBox.Show("Yes it's a .folder");
       }
      }
     else if(index==-1)//Not a valid file
      {
        MessageBox.Show("The selected file is invalid.");
      }
    }

您可以包括FileInfo程序集并使用FileInfo.Extension

FileInfo finfo = new FileInfo(fileName);
string fileName = finfo.Extension

您可以包括FileInfo程序集并使用FileInfo.Extension

FileInfo finfo = new FileInfo(fileName);
string fileName = finfo.Extension

如果只需要文件夹扩展事件

private void listBox1.SelectedIndexChanged(object sender,EventArgs e)
{
string file=listBox1.SelectedItem.ToString();
var ext = Path.GetExtension(file);
 if(ext ==".folder")
 {
    //raise event
 }
}

如果只需要文件夹扩展事件

private void listBox1.SelectedIndexChanged(object sender,EventArgs e)
{
string file=listBox1.SelectedItem.ToString();
var ext = Path.GetExtension(file);
 if(ext ==".folder")
 {
    //raise event
 }
}


列表框中的所有项目是否都有扩展名(如.folder)?是。主要是图像文件类型,虽然像.jpg和.png,但它特别是我想要的.folder类型。所以,你拉下这个字符串列表,显示给用户,他们点击一个扩展名为.folder的,还有一个事件被触发了?@Sean请回顾不同的答案,并评论那些没有完全解决你需要的问题的答案,或者最好将其中一个标记为正确答案answer@Mauricio我刚做了,伙计。不需要像那个人那样评论。我知道这个网站的工作原理。列表框中的所有项目是否都有扩展名(如.folder)?是的。主要是图像文件类型,虽然像.jpg和.png,但它特别是我想要的.folder类型。所以,你拉下这个字符串列表,显示给用户,他们点击一个扩展名为.folder的,还有一个事件被触发了?@Sean请回顾不同的答案,并评论那些没有完全解决你需要的问题的答案,或者最好将其中一个标记为正确答案answer@Mauricio我刚做了,伙计。不需要像那个人那样评论。我知道这个网站是如何工作的。为什么需要使用LastIndexOf和Substring而不使用EndsWith?@MauricioGracia如果项目是
文件夹。文件夹
,就像你说的那样,如果它适用于
somefolder.folder
,为什么它不工作呢,
music.folder
。我的意思是我没有检查上次
之前项目包含的任何内容。
,因此不会有任何问题。如果它的“folder.folder”是“folder.folder”,我不会说会发生什么。@MauricioGracia感谢您指出它,如果出现这种情况,我忘了包括一些内容。我会更新它。考虑到问题的复杂性,逻辑太复杂了。为什么需要使用LastIndexOf和Substring,而不使用EndsWith?@MauricioGracia如果项目是
文件夹。文件夹
,就像你说的那样,如果它适用于
somefolder.folder
,为什么它不起作用,
music.folder
。我的意思是我没有检查上次
之前项目包含的任何内容。
,因此不会有任何问题。如果它的“folder.folder”是“folder.folder”,我不会说会发生什么。@MauricioGracia感谢您指出它,如果发生这种情况,我忘了包括一些内容。我会更新它。考虑到问题的复杂性,逻辑太复杂了。您假设文件名是完整的文件路径,但从未提及。扩展名不需要完整的文件路径才能工作。调用.Extension时,FileInfo(“blahblah.fakeext”)将返回.fakeext。虽然,公平地说,我相信它实际上只是调用lastindexof('.'):)哦,根据这个。扩展名从字符串的末尾向后搜索到第一个句点。您假设文件名是一个完整的文件路径,而从来没有提到过。扩展名不需要完整的文件路径才能工作。调用.Extension时,FileInfo(“blahblah.fakeext”)将返回.fakeext。虽然,公平地说,我相信它实际上只是调用lastindexof('.'):)哦,根据这个。扩展名从字符串的末尾向后搜索到第一个句点。