我有一个包含文件名列表的下拉列表。在下拉列表中选择文件名后,我执行以下操作
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/