我目前正在创建一个记笔记应用程序。我试图在没有文件扩展名的情况下将项目添加到列表框中,我尝试了GetAllFilesWithoutExtensions,但没有运气。我目前能够添加它们,但似乎无法删除扩展程序。任何建议将不胜感激......
DirectoryInfo dir = new DirectoryInfo("../Debug/");
FileInfo[] files = dir.GetFiles("*.txt");
foreach (FileInfo file in files)
{
listBox1.Items.Add(file);
}
答案 0 :(得分:7)
您可以使用LINQ和System.IO.Path.GetFileNameWithoutExtension
var fileNamesWithoutExtension = files
.Select(fi => System.IO.Path.GetFileNameWithoutExtension(fi.Name));
foreach(string fn in fileNamesWithoutExtension)
{
// ...
}
答案 1 :(得分:1)
您可以使用System.IO.Path.GetFileNameWithoutExtension(string)
请参阅MSDN
答案 2 :(得分:0)
创建一个类来帮助您:
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
方法仅显示没有路径或扩展名的文件名。