//检查是否输入的是小数或整数,小数要求小数点最多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);
}
}
}