C# 文件操作实战:上传、下载、删除与文件列表

需积分: 10 2 下载量 129 浏览量 更新于2024-09-15 1 收藏 2KB TXT 举报
"本文档主要介绍如何在C#中进行文件操作,包括文件的上传、下载和删除,以及列出文件列表。" 在C#编程中,处理文件操作是常见的任务,尤其是在构建Web应用程序时。以下将详细讲解标题和描述中提到的几个关键知识点: 1. 文件上传: 在HTML中,我们可以使用`<input type="file">`元素创建一个文件选择控件,允许用户选择本地文件进行上传。在C#的服务器端,可以使用`HttpPostedFileBase`接口来访问上传的文件。例如,`this.FileUpLoad.PostedFile`代表了用户上传的文件,通过`SaveAs`方法将其保存到服务器指定的路径。需要注意的是,`SaveAs`方法中的路径应为服务器上的绝对路径,可以使用`Server.MapPath`转换URL到物理路径。 ```csharp string strFileFullName = System.IO.Path.GetFileName(this.FileUpLoad.PostedFile.FileName); this.FileUpLoad.PostedFile.SaveAs(Server.MapPath("./xmlzip/") + strFileFullName); ``` 2. 文件下载: 当用户需要下载服务器上的文件时,可以通过生成一个指向文件的链接来实现。在ASP.NET中,可以使用`ListBox`控件列出可下载的文件,并在选中项改变时生成JavaScript代码打开新窗口下载。例如,当`lst_DownLoadFileList`列表框的选中项改变时,会生成一个`onclick`事件,打开指定文件的下载链接。 ```csharp protected void lst_DownLoadFileList_SelectedIndexChanged(object sender, EventArgs e) { string strJS = "window.open('xmlzip/"; strJS += this.lst_DownLoadFileList.SelectedItem.Text.Trim(); strJS += "');return false;"; this.imgbtn_DownLoadFile.Attributes.Add("onclick", strJS); } ``` 3. 文件删除: 使用C#删除文件可以借助`System.IO`命名空间中的`File`类。首先,需要获取文件的完整路径,然后调用`Delete`方法。为了确保文件已经被删除,通常会再次检查文件是否存在。如果文件已被成功删除,可以返回提示信息。例如,当用户从列表中选择一个文件并点击删除按钮时,以下代码会被执行: ```csharp string strFilePath = Server.MapPath("../CountryFlowMgr/xmlzip/") + this.lst_DownLoadFileList.SelectedItem.Text.Trim(); if (File.Exists(strFilePath)) { File.Delete(strFilePath); if (File.Exists(strFilePath)) // 如果文件仍然存在,可能是因为其他进程正在使用 { Response.Write("文件删除失败,文件可能正在被使用。"); } else { Response.Write("文件已成功删除。"); } } else { Response.Write("文件不存在,无法删除。"); } ``` 4. 列出文件列表: 要显示服务器上某个目录下的文件列表,可以使用`DirectoryInfo`类和`GetFiles`方法。例如,若要列出`xmlzip`目录下的所有文件,可以这样做: ```csharp DirectoryInfo dir = new DirectoryInfo(Server.MapPath("./xmlzip/")); FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { lst_DownLoadFileList.Items.Add(file.Name); } ``` 以上就是C#中进行文件操作的基本步骤,包括文件上传、下载、删除以及列出文件列表。这些操作是构建Web应用时处理文件交互的基础,确保了用户能够方便地与服务器上的文件进行互动。在实际开发中,还需要考虑错误处理、权限控制和性能优化等问题。