吉吉于

C#每天抄一点(30):MP3播放器

关于 File和Fileinfo
File 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。也可将 File 类用于获取和设置文件属性或有关文件创建、访问及写入操作的 DateTime 信息。

许多 File 方法在您创建或打开文件时返回其他 I/O 类型。可以使用这些其他类型进一步处理文件。
由于所有的 File 方法都是静态的,所以如果只想执行一个操作,那么使用 File 方法的效率比使用相应的 FileInfo 实例方法可能更高。所有的 File 方法都要求当前所操作的文件的路径。

File 类的静态方法对所有方法都执行安全检查。如果打算多次重用某个对象,可考虑改用 FileInfo 的相应实例方法,因为并不总是需要安全检查。

File类的任何公共静态成员都是线程安全的,但不保证所有实例成员都是线程安全的.

FileInfo 类用于典型的操作,如复制、移动、重命名、创建、打开、删除和追加到文件。如果打算多次重用某个对象,可考虑使用 FileInfo 的实例方法,而不是 File 类的相应静态方法,因为并不总是需要安全检查。

FileInfo 类的任何公共静态成员也都是线程安全的,但不保证所有实例成员都是线程安全的。

Fileinfo可序列化,File不行。

FileInfo需要new ,File不用new。

FileInfo详情(带老子去MSDN)

DirectoryInfo

公开用于创建、移动和枚举目录和子目录的实例方法。 此类不能被继承。

.NET内建类型中提供了FileInfo和DirectoryInfo俩个类型,分别用来操作文件和文件夹,有别于File和Directory类型,FileInfo和DirectoryInfo主要功能在于操作文件和文件夹在文件系统中的结构,完成诸如:创建,复制,读取信息,移动,判断是否存在,删除等功能。

 Remove和RemoveAt
有两种方法可以删除DataRow,Delete方法和Remove方法和RemoveAt方法。其区别是Delete方法实际上不是从DataTable中删除掉一行,而是将其标志为删除,仅仅是做个记号,而Remove方法则是真正的从DataRow中删除一行,RemoveAt方法是根本行的索引来删除。

要移除的元素的从零开始的索引。

001 /*
002 * 由SharpDevelop创建。
003 * 用户: Lazynight
004 * 日期: 2011/10/28
005 * 时间: 6:35
006 *
007 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
008 */
009 using System;
010 using System.Collections.Generic;
011 using System.Drawing;
012 using System.Windows.Forms;
013 using System.IO;
014 namespace Lazy30_MP3播放器
015 {
016     public partial class MainForm : Form
017     {
018         private string[] Lazy_list=new String[5000];
019         //字符串数组
020         private int Lazy_num;
021         //MP3歌曲数量
022         public MainForm()
023         {
024             InitializeComponent();
025         }
026         void Button1Click(object sender, EventArgs e)
027         {
028             openFileDialog1.Filter=“*.mp3|*.mp3″;
029             if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
030                 //调用打开对话框
031             {
032                 string path=this.openFileDialog1.FileName;
033                 //获取文件路径
034                 FileInfo f=new FileInfo(path);
035                 //初始化 FileInfo 类的新实例,它作为文件路径的包装
036                 AddFile(f.FullName);
037                 //获取文件的完整目录
038                 string Lazy_str =Convert.ToString(Lazy_num);
039                 for(int i=1;i<5-Lazy_str.Length;i++)
040                     Lazy_str+=“  “+f.Name;
041                 //统一化显示文件名,加序号
042                 this.listBox1.Items.Add(Lazy_str);
043                 //在列表框显示添加的歌曲
044             }
045         }
046
047         void Button2Click(object sender, EventArgs e)
048         {
049             folderBrowserDialog1.SelectedPath=“d:\\”;
050             //设置初始打开路径
051             folderBrowserDialog1.ShowNewFolderButton=true;
052             //显示"新建文件夹"按钮;
053             folderBrowserDialog1.Description=“请选择音乐文件目录”;
054             folderBrowserDialog1.ShowDialog();
055             //显示对话框
056             AddFiles(folderBrowserDialog1.SelectedPath,listBox1);
057             //调用AddFiles方法
058         }
059
060         void Button3Click(object sender, EventArgs e)
061         {
062             if(listBox1.SelectedIndex>=)
063             {
064                 DelFile(listBox1.SelectedIndex);
065                 //调用DelFile方法
066                 listBox1.Items.RemoveAt(listBox1.SelectedIndex);
067                 //删除listbox对应记录
068             }
069         }
070         public void AddFile(string path)
071             //自定义AddFile方法
072         {
073             if(Lazy_num<5000)
074             {
075                 Lazy_num++;
076                 //累加MP3数目
077                 Lazy_list[Lazy_num]=path;
078                 //MP3文件地址数组
079             }
080         }
081         private void AddFiles(string path,ListBox listbox1)
082             //自定义AddFiles方法
083         {
084             DirectoryInfo dir=new DirectoryInfo(path);
085             //在指定的路径中初始化 DirectoryInfo 类的新实例
086             foreach(FileInfo f in dir.GetFiles(“*.mp3″))
087                 //获取当前目录的MP3文件列表
088             {
089                 AddFile(f.FullName);
090                 string Lazy_str =Convert.ToString(Lazy_num);
091                 Lazy_str+=“  “+f.Name;
092                 this.listBox1.Items.Add(Lazy_str);
093             }
094             foreach(DirectoryInfo f in dir.GetDirectories())
095             {
096                 AddFiles(f.FullName,listBox1);
097             }
098         }
099         public void DelFile(int selectNum)
100             //自定义DelFile方法
101         {
102             for(int i=selectNum;i<Lazy_num-1;i++)
103             {
104                 Lazy_list[i]=Lazy_list[i+1];
105             }
106             Lazy_num–;
107         }
108         public void PlaySong(int selectNum)
109         {
110             axWindowsMediaPlayer1.URL=Lazy_list[selectNum];
111         }
112
113         void ListBox1SelectedIndexChanged(object sender, EventArgs e)
114         {
115             int SelectOne;
116             if(listBox1.SelectedIndex<)
117                 SelectOne=1;
118             else
119                 SelectOne=listBox1.SelectedIndex+1;
120             if(listBox1.Items.Count<)
121                 listBox1.SelectedIndex=;
122             PlaySong(SelectOne);
123         }
124     }
125 }

下载源码

转载请注明:于哲的博客 » C#每天抄一点(30):MP3播放器