您的位置:首页 > 编程语言 > C#

C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器)

2013-05-03 23:10 375 查看
C#Winform+WindowsAPI做个剪贴板无缝自动保存器(视频截图利器)

(本文最新代码已上传到GitHub,地址在(https://github.com/bitzhuwei/ClipboardImageSaver))

利用C#和Window API做了个自动保存剪贴板内的图片的工具,用在给视频截图上是最好不过的了。共享之。

删掉指定文件夹下所有内容相同的冗余文件        private void DeleteRedundancyFiles(string directory)
{
var files = (new DirectoryInfo(directory)).GetFiles("*.jpg");
for (int i = 0; i < files.Length; i++)
{
for (int j = i + 1; j < files.Length; j++)
{
if (File.Exists(files[i].FullName) && File.Exists(files[j].FullName))
{
bool removeJ = IsSameContent(files, i, j);
if (removeJ)
{
try
{
File.Delete(files[j].FullName);
}
catch (Exception)
{ }
}
}
}
}
}

private static bool IsSameContent(FileInfo[] files, int i, int j)
{
var result = true;
using (FileStream fsi = new FileStream(files[i].FullName, FileMode.Open))
{
using (FileStream fsj = new FileStream(files[j].FullName, FileMode.Open))
{
var counti = 0;
var countj = 0;
do
{
const int length = 100;
var bytesi = new byte[length];
var bytesj = new byte[length];
counti = fsi.Read(bytesi, 0, length);
countj = fsj.Read(bytesj, 0, length);
if (counti != countj)
{
result = false;
}
else
{
for (int k = 0; k < counti; k++)
{
if (bytesi[k] != bytesj[k])
{
result = false;
break;
}
}
}
} while (result && counti > 0 && countj > 0);
}
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: