// 把子目录和文件添加到文件列表视图中 lvFiles.BeginUpdate(); lvFiles.Clear(); // 首先清除列表视图中的所有内容 // 添加4个列表头 lvFiles.Columns.AddRange( new System.Windows.Forms.ColumnHeader[] { chName, chSize, chType, chTime}); // 首先把子目录添加到列表视图中 for( int i=0;i<dirs.Length;i++) { items[0] = Path.GetFileName(dirs[i]); items[1] = ""; items[2] = "文件夹"; items[3] = Directory.GetLastWriteTime(dirs[i]). ToLong DateString() + " " +Directory.GetLastWriteTime(dirs[i]). ToLongTimeString(); lvi = new ListViewItem(items,3); lvFiles.Items.Add(lvi); } // 然后再把文件添加到列表视图中 for( int i=0;i<files.Length;i++) { string ext = (Path.GetExtension( files[i] )).ToLower(); // 根据不同的扩展名,来设定列表项的图标 if( ext == ".txt") { nImgIndex = 5; } else if( ext == ".bmp") { nImgIndex = 6; } else if( ext == ".hlp") { nImgIndex = 7; } else if( ext == ".exe") { nImgIndex = 8; } else { nImgIndex = 9; } items[0] = Path.GetFileName(files[i]); FileInfo fi = new FileInfo( files[i] ); items[1] = fi.Length.ToString(); items[2] = ext + "文件"; items[3] = fi.LastWriteTime.ToLongDateString() + " " + fi.LastWriteTime.ToLongTimeString(); lvi = new ListViewItem( items,nImgIndex ); lvFiles.Items.Add( lvi ); } lvFiles.EndUpdate(); } // <summary> // 打开列表视图中当前选择的文件 // </summary> private void OpenFile() { if( lvFiles.SelectedItems.Count <=0 ) { MessageBox.Show(this,"请先选择要打开的文件!","打开文件",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); return; } ListViewItem lvi = lvFiles.SelectedItems[0]; if( (Path.GetExtension( lvi.Text )).ToLower() != ".txt" ) { MessageBox.Show(this,"只能打开文本文件!","打开文件错误",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); return; } ContentForm fileForm = new ContentForm(); fileForm.Text = "查看文件内容-" + lvi.Text; string filename = tvDir.SelectedNode.FullPath + "\\" + lvFiles.SelectedItems[0].Text; StreamReader sr = new StreamReader( filename ); ArrayList lines = new ArrayList(); // 从文件中读取内容并把它们赋给显示文件内容对象框中的 // txtContent文本框。 while( sr.Peek() != -1 ) { lines.Add( sr.ReadLine() ); // 一次读取一行数据 } fileForm.txtContent.Lines = (string[])lines.ToArray(Type. GetType("System.String")); sr.Close(); fileForm.txtContent.Select(0,0); fileForm.ShowDialog(this); // 显示对话框 } // <summary> // 在当前选择的目录中创建一个新的文本文件 // </summary> private void NewFile() { InputFileName formFileName = new InputFileName(); if( formFileName.ShowDialog(this) == DialogResult.OK ) { string filename = tvDir.SelectedNode.FullPath + "\\" + formFileName.txtFileName.Text + ".txt"; StreamWriter sw = new StreamWriter( filename ); if( sw != null ) { // 创建新文件后,向其中写入测试内容 sw.Write("新创建的文本文件\n演示基本的文件输入/输出操作"); sw.Close(); ListDirsAndFiles( tvDir.SelectedNode.FullPath ); } } } // <summary> // 删除当前选择的文件 // </summary> private void DeleteFile() { if( lvFiles.SelectedItems.Count <=0 ) { MessageBox.Show(this,"请先选择要删除的文件!","删除文件",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); return; } string filename = tvDir.SelectedNode.FullPath + "\\" + lvFiles.SelectedItems[0].Text; if( lvFiles.SelectedItems[0].ImageIndex == 3 ) { MessageBox.Show(this,"当前所选择的是目录,不是文件,不能进行删除!","删除文件",MessageBoxButtons.OK,MessageBoxIcon. Exclamation); return; } else File.Delete( filename ); ListDirsAndFiles( tvDir.SelectedNode.FullPath ); } // <summary> // 在当前选择的目录中创建一个新的子目录 // </summary> private void NewDirectory() { InputFileName formDir = new InputFileName(); formDir.Text = "输入目录名称"; formDir.label1.Text = "请输入新目录的名称:"; if( formDir.ShowDialog(this) == DialogResult.OK ) { Directory.CreateDirectory( tvDir.SelectedNode.FullPath + "\\" + formDir.txtFileName.Text );

评论