2010-06-25 58 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