gpt4 book ai didi

c# - FileInfo.Extension 是否返回最后一个 *.* 模式或其他内容?

转载 作者:IT王子 更新时间:2023-10-29 04:17:52 39 4
gpt4 key购买 nike

我很好奇下面的行为到底是什么:

FileInfo info = new FileInfo("C:/testfile.txt.gz");
string ext = info.Extension;

这会返回“.txt.gz”还是“.gz”?

更多扩展名的行为是什么,例如“.txt.gz.zip”或类似的东西?

编辑:

明确地说,我已经对此进行了测试。我想要一份关于属性(property)的解释。

最佳答案

它将返回 .gz,但 MSDN ( FileSystemInfo.Extension Property ) 的解释并不清楚原因:

Extension 属性返回 FileSystemInfo 扩展名,包括句点 (.)。例如,对于文件 c:\NewFile.txt,此属性返回“.txt”。

于是我用反射器查找了Extension属性的代码:

public string Extension
{
get
{
int length = this.FullPath.Length;
int startIndex = length;
while (--startIndex >= 0)
{
char ch = this.FullPath[startIndex];
if (ch == '.')
{
return this.FullPath.Substring(startIndex, length - startIndex);
}
if (((ch == Path.DirectorySeparatorChar) || (ch == Path.AltDirectorySeparatorChar)) || (ch == Path.VolumeSeparatorChar))
{
break;
}
}
return string.Empty;
}
}

它检查文件路径末尾的每个字符,直到找到一个点,然后从该点返回一个子字符串到文件路径的末尾。

关于c# - FileInfo.Extension 是否返回最后一个 *.* 模式或其他内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695502/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com