遍历文件夹下的子文件夹及文件,将文件压缩处理


void Compression()
{
Info = "正在处理中。。。";

DirectoryInfo folder = new DirectoryInfo("c:\\temp");

try
{
FileSystemInfo[] files = folder.GetFileSystemInfos();
for (int i = 0; i < files.Length; i++)
{
Compression(files[i]);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}

Info = "压缩完毕。";
}
void Compression(FileSystemInfo finfo)
{
if (!finfo.Exists) return;

DirectoryInfo dir = finfo as DirectoryInfo;
if (dir != null)
{
FileSystemInfo[] files = null;
try
{
files = dir.GetFileSystemInfos();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
for (int i = 0; i < files.Length; i++)
{
FileInfo file = files[i] as FileInfo;
if (file != null)
{//是文件
Info = String.Format("处理 {0}", file.FullName);
try
{
//压缩文件。。。
}
catch
{
logger.Error(String.Format("处理{0}失败", file.FullName));
}
}
else
{
Compression(files[i]);
}
}
}
else
{
FileInfo file = finfo as FileInfo;
Info = String.Format("处理 {0}", file.FullName);
try
{
//压缩文件。。。
}
catch
{
logger.Error(String.Format("处理{0}失败", file.FullName));
}
}
}