C#文件上传:正则表达式没有组?

时间:2010-10-06 08:45:18

标签: c# regex file upload

这段代码工作正常,直到今天早上,有人能发现我的错误吗?可能真的很傻但是我很难过!

我使用表单提交文件(字段名称'fileUpEx'),然后我写了一个类来上传它(就像我说的,它已经工作了很长时间).... (如果我在页面上写'filepath',那就是'Test copy.pdf') 我的班级回归'没有团体'! 很奇怪,有人可以帮忙吗?

string filepath = fileUpEx.PostedFile.FileName;
string pat = @"\\(?:.+)\\(.+)\.(.+)";
Regex r = new Regex(pat);
Match m = r.Match(filepath);
if (m.Groups[0].Captures.Count != 0)
{ 
   //blaa blaa blaa
}
else 
{
   return "no Groups";
}

提前致谢, Vauneen

1 个答案:

答案 0 :(得分:0)

您的正则表达式要求文件路径包含不反斜杠的反斜杠。您可以将该部分作为可选部分,例如:

@"(?:\\.+\\)?(.+)\.(.+)"

或者,您可以使用System.IO.Path中提供的方法:

string extension = Path.GetExtension(filePath);
string filename = Path.GetFilenameWithoutExtension(filePath);