2010-08-18 18 views
-2

我想要做一個文件擴展名的類,我認爲擴展名應該是字符串。 我的問題是我不知道如何做這個類?我希望它是靜態的,所以我不需要聲明它是新的。我會很感激任何幫助,我可以在這種情況下找到自己,在這種情況下我需要這樣的課程。帶有字符串文件擴展名的類,如何做到這一點?

編輯

我試圖做一個類,它有一個列表,或只是一個不同的擴展名的String [],如「巴紐」,「.jpg文件」 ECT爲列表。所以我可以稍後在我的控制器中檢查文件輸入是否有其中一個「有效」的擴展名。

不是真正的投票-3這個原因,並有acutually人誰得到了問題,並有有效的答案,所以如果你想關閉這個罰款。讓我只是得到代碼。

編輯代碼
後來我就只用從文件的擴展名,並檢查這個列表包含它。對於大多數認爲對代碼來說很簡單的代碼,但對於新手來說很有幫助,而且它實際上非常方便,而不是一直編寫fileExt != ".png"等。

public static class FileExtensionsPicture 
{ 
    public static List<string> ExtensionList = new List<string> { ".png", ".jpg" }; 
} 

感謝

+1

我不明白這個問題。也許你可以解釋你的意思。 – 2010-08-18 15:47:25

+0

你想讓這個課程實際上做什麼? – btlog 2010-08-18 15:47:37

+0

問題很不清楚。請澄清你正在嘗試做什麼。 – Russ 2010-08-18 15:48:54

回答

5
public static class FileExtensions 
{ 
public static readonly string Pdf = "pdf"; 
public static readonly string Text = "txt"; 
} 

替代,如果你需要更精細的FileExtensions可能是:

public static class FileExtensions 
{ 
public static class Images 
{ 
    public static readonly string Jpeg = "jpg"; 
} 
} 

這然後可以使用這樣的:

FileExtensions.Pdf 

OR

FileExtensions.Images.Jpeg 

編輯:這裏有一個稍微不同的方式,使更多的數據可以被存儲,每種文件類型

public class FileTypes 
{ 
public static readonly Pdf = new FileTypes("pdf", "Adobe Acrobat"); 
public static readonly Excel = new FileTypes("xls", "Microsoft Excel"); 

private FileTypes(string extension, string programName) 
{ 
    Extenssion = extension; 
    ProgramName = programName; 
} 

public string Extension { get; private set; } 
public string ProgramName { get; private set; } 
} 

this can then be used like this: 

FileTypes.Excel.Extension 
FileTypes.Excel.ProgramName 
+0

正是我所需要的感謝m8 – 2010-08-18 16:14:47

+0

您可能希望包含前導'.',因爲Path類也保留它。 – 2010-08-18 19:35:31

2

有作爲.NET 還挺靜態沒有這樣的事情。您有三種可能性:靜態類,具有實例方法的普通類和字符串類型的extension method。對於字符串擴展:

public static class StringExtensions 
{ 
    public static void Foo(this string value) 
    { 
    } 

    public static void Bar(this string value) 
    { 
    } 
} 

可能像這樣被使用:

"abc".Foo(); 

假設你把範圍擴展方法。

相關問題