C#代码整理

//检查是否输入的是小数或整数,小数要求小数点最多8位
private void __CheckKeyPress(object sender, KeyPressEventArgs e)
       {
           if (!(((e.KeyChar >= '0') && (e.KeyChar <= '9')) || e.KeyChar <= 31))
           {
               if (e.KeyChar == '.')
               {
                   if (((TextBox)sender).Text.Trim().IndexOf('.') > -1)
                       e.Handled = true;
               }
               else
                   e.Handled = true;
           }
           else
           {
               if (e.KeyChar <= 31)
               {
                   e.Handled = false;
               }
               else if (((TextBox)sender).Text.Trim().IndexOf('.') > -1)
               {
                   if (((TextBox)sender).Text.Trim().Substring(((TextBox)sender).Text.Trim().IndexOf('.') + 1).Length >= 8)
                       e.Handled = true;
               }
           }
       }
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ODHelper
{

    // 单例模式
    public  class OD_FilesAssistant
    {
        private static OD_FilesAssistant instance;

        private static readonly object syncRoot = new object();

        protected OD_FilesAssistant()
        {

        }

        
        public static OD_FilesAssistant GetInstance()
        {
            if (instance == null)
            {
                lock(syncRoot)
                {
                    if (instance == null)
                    {
                        instance = new OD_FilesAssistant();
                    }
                }
            }
            return instance;
        }


        // ====================================================================  
            

        /// <summary>
        /// 按照日期和小时创建文件夹 如:20200729 -> 16
        /// </summary>
        /// <param name="filePath">@"./lwlg"</param>
        /// <returns>eg:.\lwlg\20210219\20 </returns>
        public string CreateDirByDayAndHour(string filePath)
        {
            string _FilePath = filePath;

            DateTime dtNow = System.DateTime.Now;  // 获取系统当前时间
            // Day子目录 20200729
            string subDir = dtNow.Year.ToString() + dtNow.Month.ToString().PadLeft(2, '0') + dtNow.Day.ToString().PadLeft(2, '0');
            _FilePath = _FilePath + "\\" + subDir;
            // 不存在则创建
            if (!Directory.Exists(_FilePath))
            {
                Directory.CreateDirectory(_FilePath);
            }
            // 小时子目录,不存在则创建
            _FilePath = _FilePath + "\\" + dtNow.Hour.ToString().PadLeft(2, '0');
            if (!Directory.Exists(_FilePath))
            {
                Directory.CreateDirectory(_FilePath);
            }
            
            Console.WriteLine("save FilePath =" + _FilePath);

            if (!Directory.Exists(_FilePath))
            {
                Directory.CreateDirectory(_FilePath);
            }
            return _FilePath;
        }
        

        public static void moveFile(string srcpath, string dstpath)
        {
            DirectoryInfo DInfo = new DirectoryInfo(srcpath);

            FileInfo[] FInfos = DInfo.GetFiles();

            foreach (var FInfo in FInfos)
            {
                FInfo.MoveTo(dstpath + "\\" + FInfo.Name);
            }
        }

        public static void CopyFile(string srcpath, string dstpath)
        {
            DirectoryInfo DInfo = new DirectoryInfo(srcpath);

            FileInfo[] FInfos = DInfo.GetFiles();

            foreach (var FInfo in FInfos)
            {
                FInfo.CopyTo(dstpath + "\\" + FInfo.Name);
            }


        }

        
        // 递归删除文件夹中所有文件
        public static void DelDirFiles(string dirpath)
        {
            DirectoryInfo DInfo = new DirectoryInfo(dirpath);
            FileSystemInfo[] FSInfo = DInfo.GetFileSystemInfos();

            for (int i = 0; i < FSInfo.Length; i++)
            {
                FileInfo FInfo = new FileInfo(dirpath + "\\" + FSInfo[i].ToString());

                FInfo.Delete();
            }

        }

        // 创建文件夹,存在跳过否则创建
        public static void CreatDir(string pathName)
        {
            try
            {
                DirectoryInfo dirInfo = new DirectoryInfo(pathName);
                if (dirInfo.Exists)
                {
                    return;
                }
                else
                {
                    dirInfo.Create();
                }
            }
            catch (Exception)
            {

            }
        }


        /// <summary>
        /// 文件夹下所有内容copy
        /// </summary>
        /// <param name="SourcePath">要Copy的文件夹</param>
        /// <param name="DestinationPath">要复制到哪个地方</param>
        /// <param name="overwriteexisting">是否覆盖</param>
        /// <returns></returns>
        public static bool CopyDirectory(string SourcePath, string DestinationPath, bool overwriteexisting)
        {
            bool ret = false;
            try
            {
                CreatDir(DestinationPath);

                SourcePath = SourcePath.EndsWith(@"\") ? SourcePath : SourcePath + @"\";
                DestinationPath = DestinationPath.EndsWith(@"\") ? DestinationPath : DestinationPath + @"\";

                if (Directory.Exists(SourcePath))
                {
                    if (Directory.Exists(DestinationPath) == false)
                        Directory.CreateDirectory(DestinationPath);

                    foreach (string fls in Directory.GetFiles(SourcePath))
                    {
                        FileInfo flinfo = new FileInfo(fls);
                        flinfo.CopyTo(DestinationPath + flinfo.Name, overwriteexisting);
                    }
                    foreach (string drs in Directory.GetDirectories(SourcePath))
                    {
                        DirectoryInfo drinfo = new DirectoryInfo(drs);
                        if (CopyDirectory(drs, DestinationPath + drinfo.Name, overwriteexisting) == false)
                            ret = false;
                    }
                }
                ret = true;
                //LogMgr.GetInstance().Log.DebugFormat("复制结果::{0}", ret);
            }
            catch (Exception ex)
            {
                ret = false;
            }
            return ret;
        }


        public static void DelectDir(string srcPath)
        {
            try
            {
                DirectoryInfo dir = new DirectoryInfo(srcPath);
                FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();  //返回目录中所有文件和子目录
                foreach (FileSystemInfo i in fileinfo)
                {
                    if (i is DirectoryInfo)            //判断是否文件夹
                    {
                        DelDirFiles(i.FullName);

                        DirectoryInfo subdir = new DirectoryInfo(i.FullName);
                        subdir.Delete(true);          //删除子目录和文件
                    }
                    else
                    {
                        File.Delete(i.FullName);      //删除指定文件
                    }
                }
            }
            catch (Exception e)
            {
                //ODUtility.LogMgr.GetInstance().Log.ErrorFormat("{0} :: {1}", srcPath, e.Message.ToString());
            }
            //ODUtility.LogMgr.GetInstance().Log.InfoFormat("清理{0}", srcPath);
        }

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值