我写了一个程序,监视本地某个磁盘的动向,当该磁盘有指定文件创建时,就进行解压操作。
可是我测试了一下,我一次性复制2个文件到该磁盘下时,结果程序只压解了两个文件中后面的那个文件。
如果我要将传入的文件一一解压,该怎么做,大侠们能提供一点思路和代码吗?
先谢谢大家了!
以下是我的部分代码:
private void Form1_Load(object sender, EventArgs e)
{
FileSystemWatcher watcher = new FileSystemWatcher(_pathl);
watcher.Filter = "*.bak.zip";
watcher.NotifyFilter = (NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName);
watcher.Created += new FileSystemEventHandler(OnChangedC);//创建文件时触发
timer1.Enabled = true;
watcher.EnableRaisingEvents = true; } private static void OnChangedC(object source, FileSystemEventArgs e)
{
filename = e.FullPath;
WatcherChangeTypes changeType = e.ChangeType;
// MessageBox.Show("The file" + e.FullPath + " " + changeType.ToString());
ii = 1;
_name = e.Name;
string yname = _name.Substring(0, _name.IndexOf("_2", 0));
DecompressFile(filename, _pathl + yname + ".bak"); //解压
}
可是我测试了一下,我一次性复制2个文件到该磁盘下时,结果程序只压解了两个文件中后面的那个文件。
如果我要将传入的文件一一解压,该怎么做,大侠们能提供一点思路和代码吗?
先谢谢大家了!
以下是我的部分代码:
private void Form1_Load(object sender, EventArgs e)
{
FileSystemWatcher watcher = new FileSystemWatcher(_pathl);
watcher.Filter = "*.bak.zip";
watcher.NotifyFilter = (NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName);
watcher.Created += new FileSystemEventHandler(OnChangedC);//创建文件时触发
timer1.Enabled = true;
watcher.EnableRaisingEvents = true; } private static void OnChangedC(object source, FileSystemEventArgs e)
{
filename = e.FullPath;
WatcherChangeTypes changeType = e.ChangeType;
// MessageBox.Show("The file" + e.FullPath + " " + changeType.ToString());
ii = 1;
_name = e.Name;
string yname = _name.Substring(0, _name.IndexOf("_2", 0));
DecompressFile(filename, _pathl + yname + ".bak"); //解压
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货