C# System.IO.Directory、System.IO.File文件操作
System.IO.Directory、System.IO.File文件操作
/// <summary> /// 删除文件 /// </summary> /// <param name="file"></param> /// <returns></returns> public static bool DeleteFile(string file) { try { System.IO.File.Delete(file); //System.IO.File.Delete(@"C:UsersPublicDeleteTest est.txt"); return true; } catch (Exception ex) { } return false; } /// <summary> /// 删除文件夹 /// </summary> /// <param name="path"></param> /// <returns></returns> public static bool DeleteFolder(string path) { try { if (Directory.Exists(path)) { ///删除文件夹 System.IO.Directory.Delete(path, true); ///创建文件夹 Directory.CreateDirectory(path); } return true; } catch (Exception ex) { } return false; } /// <summary> /// 删除文件夹内所有文件 /// </summary> /// <param name="path"></param> /// <returns></returns> public static bool DeleteAllFile(string path) { try { DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] files = dir.GetFiles(); if (files.Count() > 0) { foreach (var item in files) { if (!item.ToString().Contains("$") && (!item.ToString().Contains("Boot"))) { System.IO.File.Delete(dir.ToString() + "\" + item.ToString()); } } } return true; } catch (Exception ex) { } return false; }
using System; using System.IO; using System.Linq; using System.Web; namespace CoreLibrary { public class FileHelper { /// <summary> /// 创建文件夹路径名称 /// </summary> /// <param name="dir"></param> /// <returns></returns> public static string CreatDirectoryPath(string path) { string result = string.Empty; try { string year = DateTime.Now.Year.ToString(); string month = DateTime.Now.Month.ToString(); if (month.Length == 1) month = "0" + month; result = path + year + "/" + month + "/"; } catch (Exception) { result = path; } return result; } /// <summary> /// 创建文件夹 /// </summary> /// <param name="path"></param> /// <param name="message"></param> /// <returns></returns> public static bool CreateDirectory(string path, out string message) { bool IsSuccess = false; message = ""; if (!Directory.Exists(path)) { try { Directory.CreateDirectory(path); IsSuccess = true; } catch (UnauthorizedAccessException) { message = "创建目录失败,因为没有足够的权限。"; } catch (PathTooLongException) { message = "路径或者文件名超过系统定义的最大长度。"; } catch (DirectoryNotFoundException) { message = "保存目录没有找到。"; } } else IsSuccess = true; return IsSuccess; } /// <summary> /// 根据Base64字符串,保存文件 /// </summary> /// <param name="fileBase"></param> /// <param name="saveFolder"></param> /// <param name="IsApi"></param> /// <returns></returns> public static FileUploadResult CreateBase64ToImage(string fileBase, string saveFolder, bool IsApi) { FileUploadResult result = null; string savePath = string.Empty; string message = string.Empty; string fileName = string.Empty; if (IsApi) savePath = StringPlus.GetWebConfigKey("APIFilePath") + saveFolder; else savePath = ConstantParamInfo.PhysicalApplicationPath + saveFolder; try { if (CreateDirectory(savePath, out message)) { string dt = DateTime.Now.ToString("yyyyMMddHHmmss.fff"); byte[] file = Convert.FromBase64String(fileBase); fileName = dt + ".jpg"; File.WriteAllBytes(savePath + fileName, file); result = new FileUploadResult(saveFolder + fileName); } else { result = new FileUploadResult(-2, message); } } catch (Exception ex) { result = new FileUploadResult(ex); } return result; } /// <summary> /// 根据HttpPostedFileBase,保存文件 /// </summary> /// <param name="postedFile"></param> /// <param name="saveFolder"></param> /// <returns></returns> public static FileUploadResult CreatePostedFileToImage(HttpPostedFileBase postedFile, string saveFolder) { //在网站根目录下创建日志目录 string savePath = ConstantParamInfo.PhysicalApplicationPath + saveFolder; string message = string.Empty; FileUploadResult result = null; try { if (CreateDirectory(savePath, out message)) { string dt = DateTime.Now.ToString("yyyyMMddHHmmss.fff"); if (postedFile != null && postedFile.ContentLength > 0) { string fileName = string.Empty; string fileExtension = string.Empty; string filePath = string.Empty; fileName = Path.GetFileName(postedFile.FileName);//文件名称 fileExtension = Path.GetExtension(postedFile.FileName).ToLower();//文件的后缀名(小写) filePath = savePath + dt + fileExtension; postedFile.SaveAs(filePath); result = new FileUploadResult(saveFolder + dt + fileExtension); } } else { result = new FileUploadResult(message); } } catch (Exception ex) { result = new FileUploadResult(ex); } return result; } /// <summary> /// /// </summary> /// <param name="data"></param> /// <returns></returns> public static FileUploadResult CreateUploadFile(FileUploadParam data) { //网站根目录路径设置 string ApplicationPath = string.Empty; if (data.IsApplicationPath) ApplicationPath = ConstantParamInfo.PhysicalApplicationPath + data.SaveFolder; else ApplicationPath = data.CustomApplicationPath + data.SaveFolder; string message = string.Empty; FileUploadResult result = null; try { if (CreateDirectory(ApplicationPath, out message)) { string dt = DateTime.Now.ToString("yyyyMMddHHmmss.fff"); string fileName = string.Empty; string fileExtension = string.Empty; string saveFilePath = string.Empty; if (data.ResourceType == (int)ResourceTypeEnum.Base64String) { byte[] file = Convert.FromBase64String(data.Base64String); fileName = dt + ".jpg"; saveFilePath = data.SaveFolder + fileName; ///保存文件 File.WriteAllBytes(ApplicationPath + fileName, file); result = new FileUploadResult(saveFilePath); } else if (data.ResourceType == (int)ResourceTypeEnum.PostedFile) { if (data.PostedFile != null && data.PostedFile.ContentLength > 0) { bool isSuccess = true; fileExtension = Path.GetExtension(data.PostedFile.FileName).ToLower();//文件的后缀名(小写) if (data.FileExtension != null) { if (!data.FileExtension.Contains(fileExtension)) isSuccess = false; } if (isSuccess) { //fileName = Path.GetFileName(data.PostedFile.FileName);//文件名称 fileName = dt + fileExtension; saveFilePath = data.SaveFolder + dt + fileExtension; ///保存文件 data.PostedFile.SaveAs(ApplicationPath + fileName); result = new FileUploadResult(saveFilePath); } else { result = new FileUploadResult(-2, InformationPrompt.SAVE_FILE_TYPE_ERROR); } } } } else { result = new FileUploadResult(-2, message); } } catch (Exception ex) { result = new FileUploadResult(ex); } return result; } /// <summary> /// 根据Base64字符串,保存文件 /// </summary> /// <param name="path"></param> /// <param name="fileName"></param> /// <param name="fileBase"></param> /// <param name="mesage"></param> /// <returns></returns> public static bool CreateBase64ToImage(string path, string fileName, string fileBase, out string mesage) { bool IsSuccess = false; mesage = ""; if (!Directory.Exists(path)) { try { Directory.CreateDirectory(path); IsSuccess = true; mesage = "创建成功。"; } catch (UnauthorizedAccessException) { mesage = "创建目录失败,因为没有足够的权限。"; } catch (PathTooLongException) { mesage = "路径或者文件名超过系统定义的最大长度。"; } catch (DirectoryNotFoundException) { mesage = "保存目录没有找到。"; } } else IsSuccess = true; if (IsSuccess) { try { byte[] file = Convert.FromBase64String(fileBase); File.WriteAllBytes(path + fileName, file); } catch (Exception ex) { mesage = ex.Message; } } return IsSuccess; } /// <summary> /// 删除文件 /// </summary> /// <param name="file"></param> /// <returns></returns> public static bool DeleteFile(string file) { try { System.IO.File.Delete(file); //System.IO.File.Delete(@"C:UsersPublicDeleteTest est.txt"); return true; } catch (Exception ex) { } return false; } /// <summary> /// 删除文件夹 /// </summary> /// <param name="file"></param> /// <returns></returns> public static bool DeleteFolder(string path) { try { if (Directory.Exists(path)) { ///删除文件夹 System.IO.Directory.Delete(path, true); ///创建文件夹 Directory.CreateDirectory(path); } return true; } catch (Exception ex) { } return false; } /// <summary> /// 删除文件夹内所有文件 /// </summary> /// <param name="file"></param> /// <returns></returns> public static bool DeleteAllFile(string path) { try { DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] files = dir.GetFiles(); if (files.Count() > 0) { foreach (var item in files) { if (!item.ToString().Contains("$") && (!item.ToString().Contains("Boot"))) { System.IO.File.Delete(dir.ToString() + "\" + item.ToString()); } } } return true; } catch (Exception ex) { } return false; } } /// <summary> /// 创建文件夹返回结果 /// </summary> public class CreateDirectoryResult { public int Code { get; set; } public string Path { get; set; } public string Msg { get; set; } } /// <summary> /// 参数设置 /// </summary> public class FileUploadParam { public FileUploadParam() { IsApplicationPath = true; } /// <summary> /// 是否保存至项目根目录 /// </summary> public bool IsApplicationPath { get; set; } /// <summary> /// 自定义项目根目录 /// </summary> public string CustomApplicationPath { get; set; } /// <summary> /// 资源类型 /// </summary> public int ResourceType { get; set; } /// <summary> /// 保存路径:/upload/banner/123.jpg /// </summary> public string SaveFolder { get; set; } /// <summary> /// /// </summary> public HttpPostedFileBase PostedFile { get; set; } /// <summary> /// /// </summary> public string Base64String { get; set; } /// <summary> /// 文件后缀 /// </summary> public string[] FileExtension { get; set; } } /// <summary> /// 返回结果 /// </summary> public class FileUploadResult { public FileUploadResult() { this.Code = 200; this.Msg = "success"; } public FileUploadResult(string resultPath) : this() { this.Path = resultPath; } public FileUploadResult(int code, string resultPath) : this() { this.Code = code; this.Path = resultPath; } public FileUploadResult(Exception ex) : this() { this.Code = -1; this.Path = ""; this.Msg = ex.Message; } public int Code { get; set; } public string Path { get; set; } public string Msg { get; set; } } /// <summary> /// /// </summary> public enum ResourceTypeEnum { /// <summary> /// /// </summary> None = 0, /// <summary> /// Base64字符串 /// </summary> Base64String = 1, /// <summary> /// HttpPostedFileBase /// </summary> PostedFile = 2, } }
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。