入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C# System.IO.Directory、System.IO.File文件操作

创建时间:2016-12-15 投稿人: 浏览次数:1857

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。