C# WinForm: 3 个 没 人 问 过 的 问 题 (关于Windows里的那些功能的实现,可能比较偏,但绝对是些狠好的问题,各位帮看看)

KaKaKaKa 2008-09-06 06:06:01
小弟在自作的小程序中遇到了些问题,也查了些资料,但如下问题仍不头绪,请求各位帮助:

1.打开"我的电脑" 看到本地硬盘的那些写的是卷标,像C盘是System..之类的, 而下面的光驱、移动设备等 如果在不使用的状态的情况下 那些写的其实不是卷标
比如光驱什么的 写的DVD/CD驱动器 有的是DVD驱动器什么的 还有其他什么的 这些都不属于卷标 那从系统中如何获取这些字样呢 C#可以实现么?

2.文件有实际大小,在Windows系统中由于带基于内核的压缩 文件还有占用空间大小 你看某个文件的属性里就可以看到
C#可以获取文件的实际大小FileInfo类的Length就可以实现了 而占用空间大小如何获取呢 而且FAT和NTFS下的压缩情况还不同 似乎也不能按某个算法来算
汗 因为在格式化的时候簇的大小是可以512-4096自选的 你开某个盘的格式化的对话框就可以看到 那系统是如何获取的文件占用空间大小的呢 C++可以 C#可以实现?

3.这也是最难的 Windows的"我的电脑"在"查看"里可以实现平铺、图标、缩略图、列表以及详细信息功能,但在.NET里 比如listView的View属性里惟独没有缩略图的功能,据说这个狠难实现 小弟在网上看到个C++实现的还不错 有人说也看到过VB.NET的 但C#不会做 我也想了狠久 没头绪 路过的朋友帮忙看看 小弟先谢过

在学校难得出来上网 希望朋友们多给点建议方法
请各位帮忙顶上去 谢谢!
...全文
198 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZengHD 2008-09-09
  • 打赏
  • 举报
回复
我觉得楼主的这些问题不错
起码比那些“怎么把变量从Form1传到Form2”好很多
呵呵
zt_100094 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ZengHD 的回复:]
我觉得楼主的这些问题不错
起码比那些“怎么把变量从Form1传到Form2”好很多
呵呵
[/Quote]
r_swordsman 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 ms44 的回复:]
太基础了。
不予回答。
[/Quote]
拉达曼迪斯II 2008-09-09
  • 打赏
  • 举报
回复
太基础了。
不予回答。
chinls_chow 2008-09-08
  • 打赏
  • 举报
回复
我是说你的标题,这个不算好问题
KaKaKaKa 2008-09-07
  • 打赏
  • 举报
回复
什么叫"不实" 问题还分"华而不实"的? 没能解决的就是实在的问题 我看了狠多资料没解决才询问的
没有什么问题叫"不实"的 用到的时候 你就不会说它"不实"了
likegod 2008-09-06
  • 打赏
  • 举报
回复
第三个问题建议你使用一组第三方控件,叫做DotNetBar,不过有点耗资源。
chinls_chow 2008-09-06
  • 打赏
  • 举报
回复
有时间上网问研究这些还不如自己看msdn,华而不实的东西需要用的时候一找就是了,能算什么好问题,找这个你有自己研究和思考了吗,需要你自己研究和思考吗。
KaKaKaKa 2008-09-06
  • 打赏
  • 举报
回复
DrivrType指能知道是什么类型 比如像摄象头啊 虚拟光驱啊之类 你怎么知道呢 总不要写全是可移动设备吧 我笔记本还带个记忆棒呢 上面写的Memory Stick 我怎么获取这些字样呢 我要的效果就是和你打开"我的电脑"一样的效果
ZengHD 2008-09-06
  • 打赏
  • 举报
回复
没有Ready也一样可以获取DriveType,得到DriveType就知道是软驱还是本地硬盘还是U盘还是DVD还是网络驱动器
KaKaKaKa 2008-09-06
  • 打赏
  • 举报
回复
二楼的 if ready 显示那个当然不错 那如果没ready呢 我要显示像CD/DVD驱动器 啊 什么的 从系统中获取
a29dmj58k4 2008-09-06
  • 打赏
  • 举报
回复
帮顶
gaocumt 2008-09-06
  • 打赏
  • 举报
回复
mark
ZengHD 2008-09-06
  • 打赏
  • 举报
回复
缩略图我认为可以显示大图片,那图标可以使用小图片,效果一样的吧
View、LargeImageList、SmallImageList这三个属性
ZengHD 2008-09-06
  • 打赏
  • 举报
回复
第一个问题,可以根据类型来分别
        private void button1_Click(object sender, EventArgs e)
{
string s = "";
foreach (DriveInfo d in DriveInfo.GetDrives())
{
s = d.DriveType.ToString() + " " + d.Name.ToString();
if (d.IsReady)
{
s +=" "+ d.VolumeLabel.ToString() + " " + d.DriveFormat.ToString();
}
MessageBox.Show(s );
}
}
java_303 2008-09-06
  • 打赏
  • 举报
回复
关注下!

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧