📄 plugin.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;
using Core.Services.Sdk;
namespace lz77lib
{
[Plugin(true)]
class plugin:IPlugin
{
private PluginInfo p;
byte[] header={0x04,0x03,0x4b,0x50},ext;//文件头
int lblock=0; //表示ext块的长度
public plugin()
{
p = new PluginInfo("lz77 Compress", "Signercompress", "使用lz77压缩文件", new Version(1, 0, 3204, 24355), new ToolStripMenuItem("lz77压缩"));
}
#region IPlugin 成员
public void AssignTask(System.Collections.ArrayList Targets)
{
int curr=0,max=0;
foreach(string s in Targets)
max+=(int)(new FileInfo(s).Length);
foreach (string s in Targets)
{
FileInfo fi = new FileInfo(s);
ext = new byte[Encoding.Unicode.GetBytes(fi.Name).Length];
ext=Encoding.Unicode.GetBytes(fi.Name);
lblock = ext.Length;
string name = s.Remove(s.LastIndexOf(".")) + ".lz7";
FileStream fs = new FileStream(name,FileMode.Create);
curr += (int)fs.Length;
lz77.zipData(new FileStream(s, FileMode.Open), fs);
FileStream bs = new FileStream(name, FileMode.Open);
BinaryWriter bw = new BinaryWriter(bs);
bw.Write(header);
bw.Write(lblock);
bw.Write(ext);
bw.Close();
OnProgressChanged(new ProgressChangedEventArgs(curr, max));
}
}
public PluginInfo PluginInfo
{
get { return p; }
}
public event ProgressChangedEventHandler ProgressChanged;
protected virtual void OnProgressChanged(ProgressChangedEventArgs e)
{
if (ProgressChanged != null)
{
ProgressChanged(this, e);
}
}
#endregion
#region IDisposable 成员
public void Dispose()
{
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -