1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 using System.IO;
7 using System.Web;
8 using System.Web.UI;
9 using System.Web.UI.WebControls;
10
11
12 public class WebFileHelper
13 {
14
15 FileInfo fileInfo = null;
16
17 HttpResponse Response = System.Web.HttpContext.Current.Response;
18
19
20 public WebFileHelper() { }
21
22 public WebFileHelper(HttpResponse response)
23 {
24 Response = response;
25 }
26
27 /// <summary>
28 /// 判断指定文件是否存在
29 /// </summary>
30 /// <param name="fullName">指定文件完整路径</param>
31 /// <returns>存在返回true;否则返回false</returns>
32 public bool IsFileExists(string fullName)
33 {
34 fileInfo = new FileInfo(fullName);
35 if (fileInfo.Exists)
36 return true;
37 return false;
38 }
39
40
41 /// <summary>
42 /// 上传文件
43 /// </summary>
44 /// <param name="postedFile">上传的文件</param>
45 /// <param name="saveAsFullName">文件保存的完整路径,但不能重名</param>
46 /// <returns>成功返回true;否则返回false</returns>
47 public bool UploadFile(HttpPostedFile postedFile, string saveAsFullName)
48 {
49 return UploadFile(postedFile, saveAsFullName, false);
50 }
51
52 /// <summary>
53 /// 上传文件
54 /// </summary>
55 /// <param name="postedFile">上传的文件</param>
56 /// <param name="saveAsFullName">文件保存的完整路径</param>
57 /// <param name="isReplace">如果有同名文件存在,是否覆盖</param>
58 /// <returns>成功返回true,否则返回false</returns>
59 public bool UploadFile(HttpPostedFile postedFile, string saveAsFullName, bool isReplace)
60 {
61 try
62 {
63 if (!isReplace && IsFileExists(saveAsFullName))
64 return false;
65 postedFile.SaveAs(saveAsFullName);
66 return true;
67 }
68 catch (Exception ex)
69 {
70 throw ex;
71 }
72 }
73
74
75 /// <summary>
76 /// 文件下载
77 /// </summary>
78 /// <param name="fullName">文件完整路径</param>
79 /// <returns>下载成功返回true,否则返回false</returns>
80 public bool DownloadFile(string fullName)
81 {
82 return DownloadFile(fullName, fullName.Substring(fullName.LastIndexOf(@"\") + 1));
83 }
84
85 /// <summary>
86 /// 文件下载
87 /// </summary>
88 /// <param name="fullName">文件完整路径</param>
89 /// <param name="sendFileName">发送到客户端显示的文件名</param>
90 /// <returns>下载成功返回true,否则返回false</returns>
91 public bool DownloadFile(string fullName, string sendFileName)
92 {
93 try
94 {
95 fileInfo = new FileInfo(fullName);
96 Response.Clear();
97 Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(sendFileName, System.Text.Encoding.UTF8));
98 Response.AddHeader("Content-Length", fileInfo.Length.ToString());
99 Response.ContentType = "application/octet-stream";
100 Response.WriteFile(fileInfo.FullName);
101 Response.End();
102 Response.Flush();
103 Response.Clear();
104 return true;
105 }
106 catch (Exception ex)
107 {
108 throw ex;
109 }
110 }
111
112 /// <summary>
113 /// 删除文件
114 /// </summary>
115 /// <param name="fullName">文件完整路径</param>
116 /// <returns>删除成功返回true,否则返回false</returns>
117 public bool DeleteFile(string fullName)
118 {
119 if (!IsFileExists(fullName))
120 return false;
121 try
122 {
123 fileInfo = new FileInfo(fullName);
124 fileInfo.Delete();
125 return true;
126 }
127 catch (Exception ex)
128 {
129 throw ex;
130 }
131 }
132
133
134 /// <summary>
135 /// 移动文件
136 /// </summary>
137 /// <param name="fullName">文件完整路径</param>
138 /// <param name="newFullName">文件移动到的完整路径(可重新命名,但不能重名)</param>
139 /// <returns>移动成功返回true,否则返回false</returns>
140 public bool MoveTo(string fullName, string newFullName)
141 {
142 return MoveTo(fullName, newFullName, false);
143 }
144
145 /// <summary>
146 /// 移动文件
147 /// </summary>
148 /// <param name="fullName">文件完整路径</param>
149 /// <param name="newFullName">文件移动到的完整路径(可重新命名)</param>
150 /// <param name="isReplace">如果有同名文件存在,是否覆盖</param>
151 /// <returns>移动成功返回true,否则返回false</returns>
152 public bool MoveTo(string fullName, string newFullName, bool isReplace)
153 {
154 if (!isReplace && IsFileExists(fullName))
155 return false;
156 try
157 {
158 fileInfo = new FileInfo(fullName);
159 fileInfo.MoveTo(newFullName);
160 return true;
161 }
162 catch (Exception ex)
163 {
164 throw ex;
165 }
166 }
167
168 /// <summary>
169 /// 复制文件
170 /// </summary>
171 /// <param name="fullName">文件完整路径</param>
172 /// <param name="newFullName">文件移动到的完整路径(可重新命名)</param>
173 /// <returns>复制成功返回true,否则返回false</returns>
174 public bool CopyTo(string fullName, string newFullName)
175 {
176 return CopyTo(fullName, newFullName, false);
177 }
178
179 /// <summary>
180 /// 复制文件
181 /// </summary>
182 /// <param name="fullName">文件完整路径</param>
183 /// <param name="newFullName">文件移动到的完整路径(可重新命名)</param>
184 /// <param name="isReplace">如果有同名文件存在,是否覆盖</param>
185 /// <returns>复制成功返回true,否则返回false</returns>
186 public bool CopyTo(string fullName, string newFullName, bool isReplace)
187 {
188 if (!isReplace && IsFileExists(fullName))
189 return false;
190 try
191 {
192 fileInfo = new FileInfo(fullName);
193 fileInfo.CopyTo(newFullName, false);
194 return true;
195 }
196 catch (Exception ex)
197 {
198 throw ex;
199 }
200 }
201 }
时间: 2024-12-25 04:27:10