在C#.net中,如果我要写这个方法:
public static string returnFileNameOnly(string returnString)
{
string val = returnString.Substring(returnString.LastIndexOf("/"));
return val;
}
我几乎只是重写了Path.GetFileName吗?或者还有更多呢?据我所知,除非用户使用的是Internet Explorer,否则Path.GetFileName(fileVariable.FileName)
和fileVariable.FileName
会返回相同的内容(虽然我只在IE,Chrome和Firefox上试过)。
不确定那个方法到底是不是真的。
----------------对于那些好奇的人-----------------------
我问,因为在我学习Path.GetFileName
方法之前,我已经使用了很久以前在网站上使用的方法,但我不确定是否应该更改它或者不
答案 0 :(得分:6)
根据mscrolib的痉挛,我可以说GetFileName并不比你的实现复杂得多。 GetFileName 执行以下操作。
答案 1 :(得分:4)
答案 2 :(得分:4)
你总是可以四处寻找(共享源码|转子|单声道|反射器| dotPeek):
public static string GetFileName(string path)
{
if (path != null)
{
CheckInvalidPathChars(path);
int length = path.Length;
int num2 = length;
while (--num2 >= 0)
{
char ch = path[num2];
if (((ch == DirectorySeparatorChar) ||
(ch == AltDirectorySeparatorChar)) ||
(ch == VolumeSeparatorChar))
{
return path.Substring(num2 + 1, (length - num2) - 1);
}
}
}
return path;
}
答案 3 :(得分:1)
系统方法可能更复杂,因为您可以将/和\作为目录分隔符。但我肯定会说:如果有效,请不要尝试修复它!
由于这个系统方法似乎简单而简短,我会去c#反编译器观察它的内部。
Dis# - 众所周知的商业版,试用版可用:http://www.netdecompiler.com/
Jetbrains dotPeek - 另一个着名的免费:http://www.jetbrains.com/decompiler/