old_flsystem/类库/Api.Framework/Tools/Nopi/Assistant.cs

252 lines
7.7 KiB
C#
Raw Normal View History

2022-09-20 03:10:29 +00:00
using System;
using System.Text;
using System.Configuration;
using System.Web.UI.WebControls;
using System.IO;
using System.Web;
using System.Net;
using Newtonsoft.Json;
using System.Web.UI;
using System.Web.Hosting;
namespace Eson.Utils
{
/// <summary>
/// 文件操作帮助类
/// </summary>
public class Assistant
{
/// <summary>
///删除指定目录下的所有文件
/// </summary>
/// <param name="srcPath">目录</param>
public static void Deletes(string srcPath)
{
try
{
string[] fileList = Directory.GetFileSystemEntries(srcPath);//获取目录下所有文件目录和文件
foreach (string file in fileList)
{
string pt = file;
//检查是否含有"\\"字符
if (pt.IndexOf("\\") > -1)
{
pt = pt.Replace("\\", "/");//把"\\"替换成"/"
}
//检查是否为目录
if (Directory.Exists(pt))
{
if (pt.IndexOf("App_Data") > -1) //检查目录名是否为"App_Data" 如果是不执行操作
{ }
else if (pt.IndexOf("Admin") > -1)//检查目录名是否为"Admin" 如果是不执行操作
{ }
else
{
//删除该目录及目录下所有文件
Directory.Delete(pt, true);
}
}
else
{
//删除文件
File.Delete(pt);
}
}
}
catch
{
}
}
/// <summary>
/// 在执行完导入操作后,删除导入过程中临时存放的导入文件
/// </summary>
/// <param name="importFilePath"></param>
public static void DeleteFileOfImport(string importFilePath)
{
if (Convert.ToBoolean(ConfigurationManager.AppSettings["ImportPathDel"]))
{
//删除文件
try
{
System.IO.File.Delete(importFilePath);
}
catch { }
}
}
/// <summary>
/// 检查是否存在某文件,存在则删除
/// </summary>
/// <param name="strFilePath">文件路径</param>
public static void DeleteFile(string strFilePath)
{
if (File.Exists(strFilePath))
{
try
{
File.Delete(strFilePath);
}
catch { }
}
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="fuXls">上传控件</param>
/// <param name="strFilePath">文件路径</param>
/// <param name="strPath">文件上层文件夹路径</param>
public static void SaveFile(FileUpload fuXls, out string strFilePath, string strPath)
{
string virtualPath = ConfigurationManager.AppSettings[strPath] + fuXls.FileName;
strFilePath = System.Web.HttpContext.Current.Server.MapPath(virtualPath);
DeleteFile(strFilePath);
fuXls.SaveAs(strFilePath);
}
/// <summary>
/// 上传文件
/// </summary>
/// <param name="fuXls">上传控件</param>
/// <param name="strPath">文件上层文件夹路径</param>
/// <param name="saveName">文件名称(默认为空)</param>
public static string UpLoadFile(FileUpload fuXls, string strPath, string saveName = "")
{
try
{
string fileName = fuXls.FileName;
string extension = System.IO.Path.GetExtension(fileName).ToLower();
if (string.IsNullOrEmpty(saveName))
{
saveName = GetRandomCode(15);
}
saveName = saveName + extension;
string strFilePath = string.Empty;
string virtualPath = strPath + saveName;
strFilePath = System.Web.HttpContext.Current.Server.MapPath(virtualPath);
DeleteFile(strFilePath);
fuXls.SaveAs(strFilePath);
return strFilePath;
}
catch (Exception ex)
{
throw ex;
}
}
#region
/// <summary>
/// 从字符串里随机得到,规定个数的字符串.
/// </summary>
/// <param name="allChar"></param>
/// <param name="CodeCount"></param>
/// <returns></returns>
public static string GetRandomCode(int CodeCount)
{
string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,i,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
string[] allCharArray = allChar.Split(',');
string RandomCode = "";
int temp = -1;
Random rand = new Random();
for (int i = 0; i < CodeCount; i++)
{
if (temp != -1)
{
rand = new Random(temp * i * ((int)DateTime.Now.Ticks));
}
int t = rand.Next(allCharArray.Length - 1);
while (temp == t)
{
t = rand.Next(allCharArray.Length - 1);
}
temp = t;
RandomCode += allCharArray[t];
}
return RandomCode;
}
#endregion
#region
/// <summary>
/// 根据路径创建文件
/// </summary>
/// <param name="realPath">文件路径</param>
public static void CreateLog(string realPath)
{
StreamWriter SW;
SW = File.CreateText(realPath);
//SW.WriteLine(string.Format("支付宝回调: {0}", DateTime.Now.ToString("dd-MM-yyyy hh:mm:ss")));
SW.Close();
}
/// <summary>
/// 向文件写入数据
/// </summary>
/// <param name="content">内容</param>
/// <param name="realPath">文件路径</param>
public static void WriteLog(string content, string realPath)
{
using (StreamWriter SW = File.AppendText(realPath))
{
SW.WriteLine(content);
SW.Close();
}
}
#endregion
#region
/// <summary>
/// 获取虚拟目录根目录
/// </summary>
public static string SiteRoot
{
get
{
HttpRequest request = HttpContext.Current.Request;
string root = request.ApplicationPath;
if (root == "/") return root;
else return root + "/";
}
}
#endregion
}
/// <summary>
/// 文件上传操作结果返回类
/// </summary>
public class FileUpLoadMsgInfo
{
public FileUpLoadMsgInfo()
{
IsSuccess = true;
FilePath = string.Empty;
Msg = "操作成功";
}
/// <summary>
/// 是否上传成功
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// 上传好的文件路径
/// </summary>
public string FilePath { get; set; }
/// <summary>
/// 消息
/// </summary>
public string Msg { get; set; }
}
}