1、 文件的获取、复制、删除,照片base64保存为jpeg
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace CgsPrinter.Util
{
class Utils
{
public static log4net.ILog logger = log4net.LogManager.GetLogger(typeof(TcpServer));
//复制文件到指定路径下
//srcPath:原路径 destPath:新路径
public static void CopyDirectory(string srcPath, string destPath)
{
try
{
DirectoryInfo dir = new DirectoryInfo(srcPath);
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //获取目录下(不包含子目录)的文件和子目录
foreach (FileSystemInfo i in fileinfo)
{
if (i is DirectoryInfo) //判断是否文件夹
{
if (!Directory.Exists(destPath + "\\" + i.Name))
{
Directory.CreateDirectory(destPath + "\\" + i.Name); //目标目录下不存在此文件夹即创建子文件夹
}
CopyDirectory(i.FullName, destPath + "\\" + i.Name); //递归调用复制子文件夹
}
else
{
File.Copy(i.FullName, destPath + "\\" + i.Name, true); //不是文件夹即复制文件,true表示可以覆盖同名文件
}
}
}
catch (Exception e)
{
logger.Error("复制文件出错:",e);
}
}
//进行文件复制,第一个参数是需要复制的文件路径,第二个参数是目标文件路径
public static void copfile(string srcPath, string destPath)
{
try
{
if (Directory.Exists(destPath) == false)//如果不存在就创建file文件夹
{
Directory.CreateDirectory(Path.GetDirectoryName(destPath));
}
File.Copy(srcPath, destPath);//进行文件复制,第一个参数是需要复制的文件路径,第二个参数是目标文件路径
}
catch (Exception e)
{
logger.Error("复制文件出错:", e);
}
}
//删除制定路径下的文件
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) //判断是否文件夹
{
DirectoryInfo subdir = new DirectoryInfo(i.FullName);
subdir.Delete(true); //删除子目录和文件
}
else
{
File.Delete(i.FullName); //删除指定文件
}
}
}
catch (Exception e)
{
logger.Error("删除文件出错:", e);
}
}
public int GetFileNum(string srcPath)
{
int fileNum = 0;
try
{
// 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
// 遍历所有的文件和目录
foreach (string file in fileList)
{
// 先当作目录处理如果存在这个目录就重新调用GetFileNum(string srcPath)
if (System.IO.Directory.Exists(file))
GetFileNum(file);
else
fileNum++;
}
}
catch (Exception e)
{
logger.Error("获取文件个数出错:", e);
}
return fileNum;
}
public static DirectoryInfo[] SerchFile(String path) //搜索指定路径下的所有文件
{
DirectoryInfo fileFold = new DirectoryInfo(path);
if (!fileFold.Exists)
{
logger.Info("不存在文件夹"+path);
return null;
}
return fileFold.GetDirectories(); //获取指定文件夹下的所有子文件夹
}
/// <summary>
/// 返回指定目录下所有文件信息
/// </summary>
/// <param name="strDirectory">目录字符串</param>
/// <returns></returns>
public static List<FileInfo> GetAllFilesInDirectory(string strDirectory)
{
List<FileInfo> listFiles = new List<FileInfo>(); //保存所有的文件信息
DirectoryInfo directory = new DirectoryInfo(strDirectory);
if (directory.Exists)
{
DirectoryInfo[] directoryArray = directory.GetDirectories();
FileInfo[] fileInfoArray = directory.GetFiles();
if (fileInfoArray.Length > 0) listFiles.AddRange(fileInfoArray);
foreach (DirectoryInfo _directoryInfo in directoryArray)
{
DirectoryInfo directoryA = new DirectoryInfo(_directoryInfo.FullName);
DirectoryInfo[] directoryArrayA = directoryA.GetDirectories();
FileInfo[] fileInfoArrayA = directoryA.GetFiles();
if (fileInfoArrayA.Length > 0) listFiles.AddRange(fileInfoArrayA);
GetAllFilesInDirectory(_directoryInfo.FullName);//递归遍历
}
}
return listFiles;
}
//将base64位照片保存为jpg照片
public static void Base64StringToImage(String base64String, String photopath)
{
try
{
if (Directory.Exists(photopath) == false)//如果不存在就创建file文件夹
{
Directory.CreateDirectory(Path.GetDirectoryName(photopath));
}
File.WriteAllBytes(photopath, Convert.FromBase64String(base64String));
}
catch (Exception ex)
{
logger.Error("保存照片出错:", ex);
}
}
/// <summary>
/// 根据路径删除文件
/// </summary>
/// <param name="path"></param>
public static void DeleteFile(string path)
{
try
{
FileAttributes attr = File.GetAttributes(path);
if (attr == FileAttributes.Directory)
{
Directory.Delete(path, true);
}
else
{
File.Delete(path);
}
}
catch (Exception e)
{
logger.Error("根据路径删除文件出错:", e);
}
}
}
}
2、将Json保存为.json文件
//savedata:保存路径,info:JSON数据
public void saveBaseData(String savedata, JObject info)
{
string json = JsonConvert.SerializeObject(info);
if (Directory.Exists(savedata) == false)//如果不存在就创建file文件夹
{
Directory.CreateDirectory(Path.GetDirectoryName(savedata));
}
//File.Delete(savedata);
FileStream fs = new FileStream(savedata, FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.Write(json);
sw.Flush();
sw.Close();
fs.Close();
}
3、将.json文件取出放入到JSON中
public void loadidcardData(String idcardpath , String flag)
{
if (File.Exists(idcardpath) == false)
return;
string json = File.ReadAllText(idcardpath);
if (json.Length <= 0)
return;
JObject info = (JObject)JsonConvert.DeserializeObject(json);
}