在项目开发的时候,经常会要求实现一些C#方面的小功能。因此记录在这里供以后参考:
1. 遍历Dictionary对象
Dictionary<int,int> dict=new Dictionary<int,int>();
dict.Add(200,1);
dict.Add(100,2);
dict.Add(50,3);
dict.Add(20,4);
foreach( KeyValuePair<int,int> entry in dict)
{
Console.WriteLine(
string.Format("key:{0}/nvalues:{1}/n",
entry.Key,
entry.Value
)
);
}
2.使用默认的浏览器打开URL
string targetURL = @http://www.duncanmackenzie.net;
System.Diagnostics.Process.Start(targetURL);
3.C#获取文件路径的几种方法
//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str5=Application.StartupPath;
//可获得当前执行的exe的文件名。
string str1 =Process.GetCurrentProcess().MainModule.FileName;
// 获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。 备注 按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:/”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:/mySubDirectory”)。
string str2=Environment.CurrentDirectory;
//获取应用程序的当前工作目录。
string str3=Directory.GetCurrentDirectory();
//获取基目录,它由程序集冲突解决程序用来探测程序集。
string str4=AppDomain.CurrentDomain.BaseDirectory;
//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str5=Application.StartupPath;
//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str6=Application.ExecutablePath;
//获取或设置包含该应用程序的目录的名称。
string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase
4.字符串型和枚举型的相互转化
例如:
枚举类型:public enum Sex{man= 2, woman = 3 };
Sex test1 = Sex.man
a.将枚举型变量转化为字符串或整形
test1.ToString() 值为"man"
(int)test1 值为2
b.循环枚举类型
foreach (object one in Enum.GetValues(typeof(Sex)))
{
.........................
}
c.将字符串型转化为(Enum)枚举类型。
string test2 = "man"
(Sex)Enum.Parse(typeof(Sex),test2)
5.判断上传文件是否为图片,防止木马上传
方法一:用image对象判断是否为图片
/// <summary>
/// 判断文件是否为图片
/// </summary>
/// <param name="path">文件的完整路径</param>
/// <returns>返回结果</returns>
public Boolean IsImage(string path)
{
try
{
System.Drawing.Image img = System.Drawing.Image.FromFile(path);
return true;
}
catch (Exception e)
{
return false;
}
}
6.asp.net中得到绝对路径的几种方法
在编写 ASP.NET 应用程序的时候,有时为了更好地进行控制静态文件的路径,如在模板页或者用户控件中设置js或者css文件的路径等,采用绝对路径是难免的。下面就是几种获取绝对路径的几种方法。
VirtualPathUtility.ToAbsolute( " ~/ " )
HttpRuntime.AppDomainAppVirtualPath
Request.ApplicationPath
Page.ResolveUrl( " ~ " )