Form2.cs
上传用户:chinafred
上传日期:2007-08-14
资源大小:10127k
文件大小:6k
源码类别:

数据库编程

开发平台:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.IO;
  7. namespace ch5_2
  8. {
  9. /// <summary>
  10. /// Form2 的摘要说明。
  11. /// </summary>
  12. public class Form2 : System.Windows.Forms.Form
  13. {
  14. private System.Windows.Forms.ListView listView1;
  15. private System.Windows.Forms.Button button1;
  16. private System.Windows.Forms.Button button2;
  17. private System.Windows.Forms.ColumnHeader columnHeader1;
  18. private System.Windows.Forms.ColumnHeader columnHeader2;
  19. private System.Windows.Forms.ColumnHeader columnHeader3;
  20. private System.Windows.Forms.ColumnHeader columnHeader4;
  21.         //代表收藏夹文件路径
  22. public  string filePath;
  23. private AxMediaPlayer.AxMediaPlayer axMediaPlayer1;
  24. /// <summary>
  25. /// 必需的设计器变量。
  26. /// </summary>
  27. private System.ComponentModel.Container components = null;
  28. public  Form2(string fPath)
  29. {
  30. //
  31. // Windows 窗体设计器支持所必需的
  32. //
  33. InitializeComponent();
  34. this.filePath=fPath;
  35. //获取歌曲收藏夹文件路径
  36.             LoadSongs();
  37. //
  38. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  39. //
  40. }
  41. public  void LoadSongs()
  42. {
  43. try
  44. {
  45. //从文件中读取歌曲列表
  46. StreamReader fReader=new StreamReader(filePath,System.Text.Encoding.Default);
  47. //读出一首歌曲信息
  48. string s=fReader.ReadLine();
  49. while (s!=null)
  50. {
  51. //获得歌曲信息
  52. this.GetSongInfo(s);
  53. s=fReader.ReadLine();
  54. }
  55. //关闭文件流
  56. fReader.Close();
  57. }
  58. //如果文件不存在就创建一个文件
  59. catch (FileNotFoundException error)
  60. {
  61. File.Create(filePath);
  62. }
  63. }
  64. private void GetSongInfo(string s)
  65. {
  66. this.axMediaPlayer1.FileName=s;
  67. //获得歌曲名称和路径
  68. string mp3Name=this.axMediaPlayer1.GetMediaInfoString(MediaPlayer.MPMediaInfoType.mpClipTitle);
  69. string mp3Path=s;
  70. //获取文件大小
  71. FileInfo fInfo=new FileInfo(s);
  72. float size= (float)fInfo.Length/(1024*1024);
  73. //获取作者信息
  74. string author=this.axMediaPlayer1.GetMediaInfoString(MediaPlayer.MPMediaInfoType.mpClipAuthor);
  75.    
  76. //构造子项
  77. string[] subItem={mp3Name,size.ToString().Substring(0,4)+"M",author,s};
  78. //构造项
  79. ListViewItem item=new ListViewItem(subItem);
  80. //插入项
  81. this.listView1.Items.Add(item);
  82. }
  83. /// <summary>
  84. /// 清理所有正在使用的资源。
  85. /// </summary>
  86. protected override void Dispose( bool disposing )
  87. {
  88. if( disposing )
  89. {
  90. if(components != null)
  91. {
  92. components.Dispose();
  93. }
  94. }
  95. base.Dispose( disposing );
  96. }
  97. #region Windows Form Designer generated code
  98. /// <summary>
  99. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  100. /// 此方法的内容。
  101. /// </summary>
  102. private void InitializeComponent()
  103. {
  104. System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form2));
  105. this.listView1 = new System.Windows.Forms.ListView();
  106. this.columnHeader1 = new System.Windows.Forms.ColumnHeader();
  107. this.columnHeader2 = new System.Windows.Forms.ColumnHeader();
  108. this.columnHeader3 = new System.Windows.Forms.ColumnHeader();
  109. this.columnHeader4 = new System.Windows.Forms.ColumnHeader();
  110. this.button1 = new System.Windows.Forms.Button();
  111. this.button2 = new System.Windows.Forms.Button();
  112. this.axMediaPlayer1 = new AxMediaPlayer.AxMediaPlayer();
  113. ((System.ComponentModel.ISupportInitialize)(this.axMediaPlayer1)).BeginInit();
  114. this.SuspendLayout();
  115. // 
  116. // listView1
  117. // 
  118. this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
  119. this.columnHeader1,
  120. this.columnHeader2,
  121. this.columnHeader3,
  122. this.columnHeader4});
  123. this.listView1.FullRowSelect = true;
  124. this.listView1.HideSelection = false;
  125. this.listView1.Location = new System.Drawing.Point(8, 24);
  126. this.listView1.Name = "listView1";
  127. this.listView1.Size = new System.Drawing.Size(272, 160);
  128. this.listView1.TabIndex = 0;
  129. this.listView1.View = System.Windows.Forms.View.Details;
  130. // 
  131. // columnHeader1
  132. // 
  133. this.columnHeader1.Text = "曲名";
  134. // 
  135. // columnHeader2
  136. // 
  137. this.columnHeader2.Text = "作者";
  138. // 
  139. // columnHeader3
  140. // 
  141. this.columnHeader3.Text = "大小";
  142. // 
  143. // columnHeader4
  144. // 
  145. this.columnHeader4.Text = "路径";
  146. // 
  147. // button1
  148. // 
  149. this.button1.Location = new System.Drawing.Point(112, 200);
  150. this.button1.Name = "button1";
  151. this.button1.TabIndex = 1;
  152. this.button1.Text = "删除";
  153. this.button1.Click += new System.EventHandler(this.button1_Click);
  154. // 
  155. // button2
  156. // 
  157. this.button2.Location = new System.Drawing.Point(208, 200);
  158. this.button2.Name = "button2";
  159. this.button2.TabIndex = 2;
  160. this.button2.Text = "确定";
  161. this.button2.Click += new System.EventHandler(this.button2_Click);
  162. // 
  163. // axMediaPlayer1
  164. // 
  165. this.axMediaPlayer1.Location = new System.Drawing.Point(16, 232);
  166. this.axMediaPlayer1.Name = "axMediaPlayer1";
  167. this.axMediaPlayer1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axMediaPlayer1.OcxState")));
  168. this.axMediaPlayer1.Size = new System.Drawing.Size(64, 8);
  169. this.axMediaPlayer1.TabIndex = 3;
  170. this.axMediaPlayer1.Visible = false;
  171. // 
  172. // Form2
  173. // 
  174. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  175. this.ClientSize = new System.Drawing.Size(304, 253);
  176. this.Controls.AddRange(new System.Windows.Forms.Control[] {
  177.   this.axMediaPlayer1,
  178.   this.button2,
  179.   this.button1,
  180.   this.listView1});
  181. this.Name = "Form2";
  182. this.Text = "收藏夹编辑器";
  183. ((System.ComponentModel.ISupportInitialize)(this.axMediaPlayer1)).EndInit();
  184. this.ResumeLayout(false);
  185. }
  186. #endregion
  187. private void button1_Click(object sender, System.EventArgs e)
  188. {
  189. if (this.listView1.Items.Count!=0)
  190. {
  191. if (this.listView1.SelectedItems.Count!=0)
  192. {
  193. //移除当前曲目
  194. this.listView1.SelectedItems[0].Remove();
  195. }
  196. }
  197. }
  198. private void button2_Click(object sender, System.EventArgs e)
  199. {
  200. //创建写文件流
  201. StreamWriter sWriter=new StreamWriter(this.filePath,false,System.Text.Encoding.Default);
  202. //将列表中的歌曲逐一写入文件之中
  203. foreach (ListViewItem item in this.listView1.Items)
  204. {
  205. sWriter.WriteLine(item.SubItems[3].Text);
  206. }
  207. //关闭文件流
  208. sWriter.Close();
  209. this.Close();
  210. }
  211. }
  212. }