2010-08-18 47 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(); 

假设你把范围扩展方法。

相关问题