2010-06-25 57 views
1

我有一个奇怪的模板,其扩展名是“.docx.amp”。现在我想获得fileName。即“模板”。 Path.GetFileNameWithoutExtension()失败,因为它返回template.docx。有没有其他内置的机制,或者我将不得不去ugle字符串比较/拆分的方式。请建议并给出一些解决办法如何从c#中的文件“template.docx.amp”获取文件名?

回答

2

不,你将不得不使用某种类型的字符串分割,例如:

var nameWithoutExtension = filename.Split('.')[0]; 
+0

“的String []分(焦炭)”是最小的有效的解决方案,而不需要去进入正则表达式的领域。从我+1。 – Maciek 2010-06-25 05:25:29

+0

@Maciek但它不起作用,如果文件名中有'.',例如:'test.file.name.docx.amp'将产生'test'而不是'test.file.name'的propery值。 – Kelsey 2010-06-25 15:08:23

+0

@Kelsey ...在上面的例子中,很明显扩展是什么,因为作为人类,我们认识到docx是一个常见的扩展,但是一个名为“document.something.somethingelse”的文件又如何呢?非扩展部分是“文档”还是“文档”?在一般情况下计算扩展是非确定性的,所以我选择了一个方法,给出了原始问题中问题的正确答案。 – 2010-06-28 11:51:34