这是第一个问题.我正在开发一个用C#(.NET 3.5)编写的程序,它在listview中显示文件.我想让"大图标"视图显示Windows资源管理器用于该文件类型的图标,否则我将不得不使用这样的现有代码:
private int getFileTypeIconIndex(string fileName)
{
string fileLocation = Application.StartupPath + "\\Quarantine\\" + fileName;
FileInfo fi = new FileInfo(fileLocation);
switch (fi.Extension)
{
case ".pdf":
return 1;
case ".doc": case ".docx": case ".docm": case ".dotx":case ".dotm": case ".dot":case ".wpd": case ".wps":
return 2;
default:
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码返回一个整数,用于从我填充了一些常用图标的图像列表中选择一个图标.它工作正常,但我需要在阳光下添加每个扩展!有没有更好的办法?谢谢!
我正在开发一个程序,搜索整个驱动器的给定文件.目前,我计算了已知文件的MD5哈希值,然后递归扫描所有文件,寻找匹配项.
唯一的问题是MD5在大文件上的速度非常慢.是否有更快的替代方案,我可以使用,同时保留一个非常小的误报可能性?
所有代码都在C#中.
谢谢.
更新
我已经读过,即使MD5也可以非常快,磁盘I/O应该是限制因素.这让我相信我的代码可能不是最佳的.这种方法有什么问题吗?
MD5 md5 = MD5.Create();
StringBuilder sb = new StringBuilder();
try
{
using (FileStream fs = File.Open(fileName, FileMode.Open, FileAccess.Read))
{
foreach (byte b in md5.ComputeHash(fs))
sb.Append(b.ToString("X2"));
}
return sb.ToString();
}
catch (Exception)
{
return "";
}
Run Code Online (Sandbox Code Playgroud) 我从来没有完全理解这个属性的设计目的.我可以看到它明显改变了工具条的设计,我发现在Windows XP上将它设置为System使其更适合WinForms风格.
这里有更深层的含义吗?控件的呈现方式是否会发生变化以及您建议使用哪种模式?
谢谢.
我有一个定期运行的方法来优化我的应用程序的SQL Server Compact Edition(3.5)数据库.现有代码使用Shrink()方法:
SqlCeEngine engine = new SqlCeEngine(dbConnectionString);
engine.Shrink();
Run Code Online (Sandbox Code Playgroud)
今天我注意到还有一个Compact()方法.哪个更适合定期维护?