using System.IO.Compression;
namespace Common
{
public class FileHelper
{
///
/// 解压zip文件
///
/// zip文件路径
/// 解压到的目标路径
/// 是否覆盖已存在的文件,默认覆盖
public static bool ExtractZip(string zipPath, string extractPath, bool overwrite = true)
{
try
{
zipPath = Function.getPath(zipPath);
extractPath = Function.getPath(extractPath);
ZipFile.ExtractToDirectory(zipPath, extractPath, overwrite);
return true;
}
catch(Exception ex)
{
Utils.WriteLog(ex.ToString(), "FileHelper-ExtractZip");
return false;
}
}
public static List GetSystemFiles(string directoryInfo)
{
List SystemFiles = new List();
directoryInfo = Function.getPath(directoryInfo);
System.IO.FileSystemInfo info = new System.IO.DirectoryInfo(directoryInfo);
scan(SystemFiles, info);
return SystemFiles;
}
private static void scan(List SystemFiles, System.IO.FileSystemInfo info)
{
if (!info.Exists) return;
System.IO.DirectoryInfo dir = info as System.IO.DirectoryInfo;
//不是目录
if (dir == null) return;
System.IO.FileSystemInfo[] files = dir.GetFileSystemInfos();
for (int i = 0; i < files.Length; i++)
{
System.IO.FileInfo file = files[i] as System.IO.FileInfo;
//是文件
if (file != null)
{
SystemFiles.Add(file.FullName);
}
else scan(SystemFiles, files[i]);
}
}
}
}