随笔分类 -  编程

下载文件时根据MIME类型自动判断保存文件的扩展名
摘要:用WebClient下载远程资源时,经常会遇到类似这样的网址: http://www.uushare.com/filedownload?user=icesee&id=2205188 http://www.guaishow.com/u/luanfujie/g9675/ 我们不知道这个Url具体代表的是一个网页,还是某种类型的文件。 而有些Url虽然带有扩展名,但可能是错误的扩展名,常见的比如把gif文件标上了jpg扩展名。 如果我们没法正确判断下载源的文件类型的话,就无法保存为正确的文件格式,会给后续操作及人工阅览造成困扰。 所幸的是,WebRequest可以给出下载源的MIME信息,这让我们可以确定文件的真实格式,并以此来决定最终的存储扩展名 阅读全文
posted @ 2009-11-12 01:46 斯克迪亚 阅读(6358) 评论(17) 推荐(4) 编辑
.Net中绝对路径与相对路径(如“..\a.txt”)的拼合方法
摘要:在做文件路径处理时,经常需要对一个路径的相对路径进行操作,那么如何拼合相对路径以生成新的绝对路径呢? 我们知道System.IO.Path是专门用来处理路径的静态类,它有一个Combine()方法就是用于拼接路径的,我们来测试一下其拼接效果。 我们使用一个命令行程序进行测试,这里要测试相对于文件C:\abc\123\avatar.html的一系列相对路径,测试代码如下…… 阅读全文
posted @ 2009-11-04 00:05 斯克迪亚 阅读(9022) 评论(13) 推荐(1) 编辑
稍加改进的Switch/Case扩展方法
摘要:鹤冲天的《c#扩展方法奇思妙用》系列给了我很多启示,其中的很多用法大大提升了代码编写效率,最近小研究了一下他提供的《c#扩展方法奇思妙用变态篇三:switch/case组扩展》一文提供的扩展方法,并依照自己的习惯重新实现了一下,现分享一下我的实现。 这样的扩展除了让代码显得更复杂以衬托出作者之牛B深奥之外,还有什么优点? 优点就是能在单句Lambda表达式中使用,这样就能让你更深奥一层…… 哈哈,玩笑,不只是单句Lambda表达式,在充当方法的参数时,三元表达式又不够用的情况下,这样的扩展就大有用武之地了,你可以不必大费周章地再去定义临时的变量并给它赋值,或者专门建立一个方法来解决这类简单的判别问题。 它的形式可能不算优雅, 阅读全文
posted @ 2009-10-26 00:39 斯克迪亚 阅读(6753) 评论(15) 推荐(7) 编辑
使用配置文件(.settings、.config)存储应用程序配置
摘要:我不知大家早先是如何保存应用程序配置,以备下次打开时使用的,反正我开始学.Net的时候就去研究序列化,以二进制或XML格式的序列化来保存应用程序配置。这样每次都要建立单独的配置类,并书写读写配置代码,相当麻烦。 期间也看了看.config文件的读写方式,感觉还是很麻烦,不如自己序列化来的踏实。 后来才猛然发现微软早提供好了settings,用以定义.config文件内容,并生成相应的强类型类,使用起来极其方便~,感觉就像在火星居住了半辈子突然发现还有地球这好地方*_*~ 鉴于网上settings方面的资料不多、不详,我就以此文来介绍一下基本的用法,让小鸟们少走我那条破路,老鸟请直接从上空滑翔而过即可。... 阅读全文
posted @ 2009-09-14 00:44 斯克迪亚 阅读(13041) 评论(50) 推荐(12) 编辑
[SEO]让你的Asp.Net网站自动生成Sitemap——XmlSitemap
摘要:首先我要说明:Asp.Net内置的Sitemap与这里讲的Sitemap是完全不同的,Asp.Net中的Sitemap主要用于给用户导航,而这里说的Sitemap是用来给搜索引擎爬虫指路。 还是直接来看看官方解释吧: 什么是Sitemap? Sitemap 可方便管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitepmap 形式,就是 XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的频率以及相对于网站上其他网址的重要程度为何等),以便搜索引擎可以更加智能地抓取网站。 …… 阅读全文
posted @ 2009-08-14 00:16 斯克迪亚 阅读(10194) 评论(29) 推荐(6) 编辑
也谈Asp.Net编译错误CS0433 类型XXX同时存在于…
摘要: 一直好好的Asp.Net项目,晚上突然出现这个问题,于是搜索了一下,看到有人给出了比较好的解决办法: 出现这种错误大概有三种情况: 1、ASPX页面,一个*.ASPX,对应着一个*.cs文件,两者其实是一个文件,通过两者实现代码分离,每个*.aspx页面都引用着自身的CS文件:如果两个页面引用了相同得.CS文件,在发布得时候也会出现这种错误。 2、估计是在Bin里面还有一个老版本的DLL,而新版的DLL名字换掉了,新的覆盖不掉老的,并存在BIN里时,有可能会发生这种情况. 解决方案:把BIN里的手动删掉,C:\WINDOWS\Microsoft.NET\Framework\版本号\Temporary A 阅读全文
posted @ 2009-08-13 01:47 斯克迪亚 阅读(8907) 评论(5) 推荐(1) 编辑
谨慎注意WebBrowser控件的DocumentCompleted事件
摘要:WebBrowser控件的DocumentCompleted事件一般就被认定为是在页面完全加载完毕后产生,而注释中也是这么写的,但事实却并非如此。 首先它不一定会在完全加载完毕时才触发,有时就会在加载过程中就会触发。 其次按照“完全加载完毕后”来理解,会认为通常一次页面跳转只会引发一次该事件,事实也并非如此,某些页面加载时会引发十多次乃至更多。 ... 阅读全文
posted @ 2009-08-06 03:56 斯克迪亚 阅读(17561) 评论(16) 推荐(11) 编辑
在WebBrowser中通过模拟键盘鼠标操控网页中的文件上传控件
摘要:这两天沉迷了Google SketchUp,刚刚玩够,一时兴起,研究了一下WebBrowser。 我在《WebBrowser控件使用技巧分享》一文中曾谈到过“我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件”,出于安全原因,IE没有对上传控件提供操控支持,这使得我们没法像控制其他控件一样用简单的代码进行赋值。 比较实际的解决方案就是模拟操作了,下面我就将演示通过键盘、鼠标两种方式模拟点击“浏览”按钮,然后配合键盘模拟输入文件路径,并按回车键确认。 阅读全文
posted @ 2009-08-06 00:52 斯克迪亚 阅读(14960) 评论(21) 推荐(5) 编辑
通过HttpModule实现IP地址屏蔽功能
摘要:此前本想在网上找找实现Asp.Net的IP地址屏蔽功能的文章来参考,但是一搜索“IP 屏蔽 asp.net”,出现的全都是对我此前写的《细说Asp.net的IP地址屏蔽功能设计》一文的无情转载,不仅不保留出处、作者,而且连标题都没一个与我原文相同的~~ 这篇文章写的是程序设计部分,并没有编程实现屏蔽功能,搜索引擎上翻了几页也没找到个正经写这方面的文章,无奈只好自己来研究实现,并写下此文的续篇了,倒是没什么难度。 本文将介绍通过实现IHttpModule接口,进行判断和屏蔽IP地址的方法。 ... 阅读全文
posted @ 2009-07-31 02:35 斯克迪亚 阅读(7022) 评论(38) 推荐(15) 编辑
免费的午餐——编程利用Google日历API发短信、Email
摘要:Google日历是相当优秀的日程管理工具,可以方便的组织、分享各类日程,Google还提供了贴心而免费的手机短信、Email提示功能,真是非常的赞。 此外Google还公开了其API,使得我们可以通过各种语言编程访问。 我们要利用类库,及Google日历的免费短信、Email提醒功能,实现程序控制提醒。... 阅读全文
posted @ 2009-07-23 02:30 斯克迪亚 阅读(30354) 评论(96) 推荐(33) 编辑
ASP.Net中Ado.Net Entity Framework实际项目应用释疑
摘要:关于Ado.Net Entity Framework 的理论、入门教学文章已不少了,但是很少有人讲到在ASP.Net项目中实际项目应用的问题,往往学的时候轻松搞定,一上手项目就一头雾水。 我在此将结合自己的经验,解答包括上述问题在内的一些在ASP.Net实际项目中容易产生的疑问。 阅读全文
posted @ 2009-07-20 00:32 斯克迪亚 阅读(13037) 评论(62) 推荐(13) 编辑
Google图表创建类 —— 高度封装!强力图表解决方案!
摘要:Google图表API是一个免费的、非常强劲的图表生成工具,您可以仅凭一个Url地址,轻松生成一张具有专业水准的图表。 更为可贵的是,图表图形的计算和渲染完全由Google服务器处理,生成的图片也从Google服务器下载,你的服务器就可以大幅节约运算及网络流量资源。 故此,将Google图表API作为网站的图表解决方案,是一个绝佳的选择。... 阅读全文
posted @ 2009-07-15 01:53 斯克迪亚 阅读(8984) 评论(74) 推荐(33) 编辑
【附视频】万分诡异!——ListView胡乱执行Page.Validate()的BUG
摘要:今天做网站时遇到了非常恶心的事: 页面上有两个用户控件,其中一个包含ListView,用于显示商品评论列表,另一个就是用于发表评论的提交信息界面。 用于显示评论列表的用户控件中的ListView支持编... 阅读全文
posted @ 2009-06-29 00:05 斯克迪亚 阅读(3564) 评论(24) 推荐(1) 编辑
EntityDataSource不易察觉的错误
摘要:今天在使用EntityDataSource显示数据时,返回的数据总是空的,确认过数据库内数据后,尝试去掉Where及参数,移除各种事件均告无效。 后来新建了一个EntityDataSource,简单配置一下数据源,测试通过。 挠墙半晌后看到Include属性中包含了一个已经在数据库及EDM中删除的导航属性,去掉该属性后测试即通过。 虽然是个人的小失误,但可恨的是对于这个简单的错误EntityDat... 阅读全文
posted @ 2009-06-24 05:01 斯克迪亚 阅读(776) 评论(0) 推荐(0) 编辑
ASP.Net控件模板中根据绑定对象的属性控制元素隐现技巧
摘要:本文介绍了三种通过绑定对象控制元素隐现的方法: 直接在内嵌代码中判断和输出文本 在服务器控件的Visible属性中嵌入代码进行判断 使用PlaceHolder控件作为容器装载多个元素,在其Visible属性中内嵌代码控制内部多个元素的隐现 阅读全文
posted @ 2009-06-12 23:09 斯克迪亚 阅读(3571) 评论(12) 推荐(0) 编辑
防止自建控件与页面间重复引入客户端js脚本的方法
摘要:我们在创建自定义的服务器端控件或是用户控件时,经常需要用到一些客户端js脚本,通常将其作为资源嵌入,并在页面后台代码中添加引用,但是如若用到一些通用的js库(比如JQuery)时,就免不了产生一个疑问... 阅读全文
posted @ 2009-06-10 00:54 斯克迪亚 阅读(5060) 评论(12) 推荐(0) 编辑
蹩脚的EntityDataSource和FormView控件(解决插入数据时报空引用异常的BUG)
摘要:这两天做网站,某页中使用了EntityDataSource结合FormView插入数据,先是自动生成了这么个基本的表单然后运行,插入测试数据(咋变这色了?? ) 结果回回报错! 始终找不出错误位置,弄得我直想挠墙。... 阅读全文
posted @ 2009-06-04 04:18 斯克迪亚 阅读(2178) 评论(5) 推荐(0) 编辑
关系数据库一对一关系模式应用示例
摘要:关系数据库中,一对多关系使用的非常普遍,多对多关系也时有用到,而一对一关系用的非常之少,本篇将展示一个一对一关系的使用示例。 首先我们有这样一个数据库: 这是一个简单的商业数据库,现在有一个需求:要求... 阅读全文
posted @ 2009-05-28 02:34 斯克迪亚 阅读(12302) 评论(6) 推荐(3) 编辑