C#高级编程:文件操作类
大家都知道,移动和删除文件或文件夹可以使用FileInfo 和DirectoryInfo类的MoveTo() 和 Delete()方法来完成。File和Directory类的这两个对应方法是Move() 和 Delete()。FileInfo 和 File类也分别执行CopyTo() 和 Copy()方法。没有复制完整文件夹的方法,而应复制文件夹中的每个文件。
这些方法的使用非常直观—— SDK文档提供了详细的解释。本节介绍在特定情况下,调用File类的静态方法Move()、Copy()和Delete()的作用。为此,把前面的FileProperties示例扩展为一个新示例FilePropetiesAndMovement。这个示例有一个额外的功能:无论什么时候显示文件的属性,该应用程序都会给出删除该文件的选项,或者把该文件移动和复制到其他地方的选项。
C#高级编程:FileInfo使用范例
下面介绍FilePropertiesAndMovement示例。图1所示为该示例的用户界面。
从这个屏幕图上可以看出,它的外观非常类似于FileProperties示例,但在窗口的底部添加了一个组,其中包含三个按钮和一个文本框。这些控件仅在示例显示了文件的属性时才能使用,在其他情况下,它们都是禁用的。我们还压缩了现有的控件,防止主窗体过大。在显示文件的属性时,该示例会自动把文件的完整路径名放在底部的文本框中,供用户编辑。用户可以单击底部的任何一个按钮,执行相应的操作。此时,会显示一个相应的信息框,确认该操作。在上面的示例中,如果用户单击了Copy To,则显示如图图2所示的信息。
图1
图2
当用户单击了Yes按钮后,就可以开始执行某些动作。用户在窗体上执行的某些动作会使显示不正确。例如,在移动和删除文件时,显然不能在同一个地方显示该文件的内容。而且,如果改变同一个文件夹上的文件名,显示的信息也会不正确。
此时,FilePropertiesAndMovement示例会重新设置其控件,在文件的操作结束后,只显示包含文件的文件夹。
为此,需要在FileProperties示例中添加相关的控件,及其事件处理程序代码。
我们添加的控件是buttonDelete、buttonCopyTo、buttonMoveTo和 txtBoxNewPath。
首先看看用户单击Delete按钮时调用的事件处理程序:
- protected void OnDeleteButtonClick(
- object sender, EventArgs e)
- {
- try
- {
- string filePath = Path.Combine(
- currentFolderPath,
- textBoxFileName.Text);
- string query = "Really delete the
- file\n" + filePath + "";
- if (MessageBox.Show(query,
- "Delete File", MessageBoxButtons.YesNo) ==
- DialogResult.Yes)
- {
- File.Delete(filePath);
- DisplayFolderList(currentFolderPath);
- }
- }
- catch(Exception ex)
- {
- MessageBox.Show("Unable to delete file.
- The following exception"
- + " occurred:\n" + ex.Message, "Failed");
- }
- }
这个方法的代码包含在一个try块中,这是因为很显然会抛出一个异常,例如在用户单击了delete按钮后,如果不允许删除该文件,或者当时有另一个进程移动了该文件,就会抛出一个异常。在CurrentParentPath字段中构造要删除文件的路径,其中包含父文件夹的路径,textBoxFileName文本框中的文本。
以上就介绍了C#高级编程:使用文件操作类进行移动、复制和删除文件的方法。
【编辑推荐】