c# - 获取文件扩展名 C#

标签 c# asp.net file file-extension

我有一个包含文件名列表的下拉列表。在下拉列表中选择文件名后,我执行以下操作

string filename = ddl.SelectedItem.Text;
string path = "F:\\WorkingCopy\\files\\" + filename +".docx";
DownloadFile(path,filename);

文件夹中的文件可以包含任何扩展名。因为我在字符串路径中硬编码了“.docx”,所以一切正常。但我需要单独使用 ddl.SelectedItem.Text 获取文件名的扩展名。你能告诉我怎么做吗?

我的东西 1.)

中没有扩展名的文件名
string filename = ddl.SelectedItem.Text;

2.) 文件所在路径

string path = "F:\\WorkingCopy\\files\\" + filename 

我正在尝试使用这些获取文件扩展名。有人可以对此提出建议吗?

最佳答案

您可以使用 Directory.EnumerateFiles() 像这样:

string path = "F:\\WorkingCopy\\files\\";
string filename = ddl.SelectedItem.Text;

string existingFile = Directory.EnumerateFiles(path, filename + ".*").FirstOrDefault();

if (!string.IsNullOrEmpty(existingFile))
    Console.WriteLine("Extension is: " + Path.GetExtension(existingFile));

Directory.EnumerateFiles搜索 path对于 filename.* 这样的文件. Path.GetExtension() 返回找到的文件的扩展名。


一般来说,我更喜欢使用EnumerateFiles()而不是 GetFiles因为它返回一个 IEnumerable<string>相反 string[] .这表明它只根据需要返回匹配的文件,而不是一次搜索所有匹配的文件。 (这对你的情况并不重要,只是一个一般性的说明)。

关于c# - 获取文件扩展名 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47688481/

相关文章:

javascript - ASP.NET - 如何动态调整 Javascript 模式窗口的大小

c# - 从数据库中计算正确答案的数量

file - 如何在 Emacs 中保存缓冲区而不访问它?

file - Flutter web - 显示应用程序中生成的 pdf 文件。 (Uint8List 格式)

c# - == 对象被装箱时运算符重载

c# - 在C#中使用NAudio将M4A音频文件转换为MP3时出现问题/错误

c# - C#中计算字符串的显示宽度?

c# - 使用 EF 选择组中的 TOP 元素

asp.net - 如何让这个 ASP.NET 路由正常工作?

linux - 从一个位置开始将一个长字符串包装成多行