一、File

1. 获取文件夹下所有文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
////第一种方法(这种方法是获取了文件的路径名)
//var files = Directory.GetFiles(DirPath, "*.xlsx");

//foreach (var file in files)
//{
// MessageBox.Show(file);
//}

//第二种方法(这种方法是获取了所有文件)
DirectoryInfo folder = new DirectoryInfo(DirPath);
foreach (FileInfo file in folder.GetFiles("*.xlsx"))
{
classdt.Rows.Add(file.Name);
}

2. 将文件复制到指定目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//DirPath 目标存储文件夹
//FileName 目标文件
//nweFileName 新文件名
bool flag = Directory.Exists(DirPath);
if (!flag)
{
Directory.CreateDirectory(DirPath);
}
AddClassInformationForm acifrm = new AddClassInformationForm();
if (acifrm.ShowDialog() == DialogResult.OK)
{
try
{
File.Copy(FileName, nweFileName, true);
File.Move(FileName + nweFileName, DirPath + nweFileName);
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}

3. 打开文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//定义一个ProcessStartInfo实例
System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo();
//设置启动进程的初始目录
info.WorkingDirectory = Application.StartupPath;
//设置启动进程的应用程序或文档名
info.FileName = FileName;
//设置启动进程的参数
info.Arguments = "";
//启动由包含进程启动信息的进程资源
try
{
System.Diagnostics.Process.Start(info);
}
catch (System.ComponentModel.Win32Exception we)
{
MessageBox.Show(this, we.Message);
}

二、Color

1. C#关于颜色值的表示:

  • 常用的颜色值表示方式有两种,一种是10进制的RGB值表示,如(0,113,255),三个值分别表示(红,绿,蓝);一种是16进制的颜色码表示,如#ff3212。这两种形式在编程中都可以用到。若是在VS设计器中,设置某个控件的前景色或背景色时,可直接用0,113,255或#ff3212的形式,而在后台代码中,也可以通过Color.FromArgb()方法使用这两种形式来定义颜色。

2. Color.FromArgb()方法的重载及使用

  • Color.FromArgb()方法共有四种重载形式,MSDN上列出来这四种重载方法的说明已足够解释各个参数的含义。
名称 说明
Color.FromArgb(Int 32) 从—个32位ARGB值创建Color结构。由.NET Compact Framework支持。
Color.FromArgb(Int 32, Color) 从指定的Color结构创建Color结构,但要使用新指定的alpha值。尽管此方法允许为alpha值传递32位值,但该值仅限于8位。
Color.FromArgb(Int 32, Int 32, Int 32) 从指定的8位颜色值(红色、绿色和蓝色)创建Color结构。alpha值默认为255(完全不透明)。尽管此方法允许为每个颜色分量传递32位值,但每个分量的值仅限于8位。由.NET Compact Framework支持。
Color.FromArgb(Int 32, Int 32, Int 32, Int 32) 从四个ARGB分量( alpha、红色、绿色和蓝色)值创建Color结构。尽管此方法允许为每个分量传递3位值,但每个分量的值仅限于8位。
  • 其中alpha分量值即透明度设置要比较注意:

    • Color.FromArgb (Int32, Int32, Int32)方法是没有设alpha值的,默认为255,即不透明。

    • 而在使用Color.FromArgb (Int32)方法时,alpha值是默认为0的,例16进制颜色码#dd2378,使用Color.FromArgb (0xdd2378)来定义颜色,则alpha值是默认为0,该颜色是全透明的,所以看不到该颜色。要想显示出该颜色,必须设置alpha值>0,如:Color.FromArgb (0x7fdd2378);此时颜色为半透明。当然也可以将alpha值设置为全不透,其值为0xffdd2378。

    • 不过在使用该值时有些注意事项,因为0xffdd2378是无符号整型uint类型,而Color.FromArgb (Int32)的参数是int型,因此必须使用强制转化Color.FromArgb((int)0xffdd2378),不过即使这样,程序仍会报错,需要使用unchecked重写才能成功(unchecked 关键字用于取消整型算术运算和转换的溢出检查)。
      通过几句简单的代码来说明这个问题,代码如下:

      • c button1.BackColor = Color.FromArgb(0xdd2378); button2.BackColor = Color.FromArgb(0x7fdd2378); unchecked //在后续的作用域范围内,取消整型算术运算和转换的溢出检查 { button3.BackColor = Color.FromArgb((int)0xffdd2378); } ````