木子屋 Dnawo's BLOG

2009-04 归档

共 63 篇

string.Format中大括号转义

今天在使用string.Format格式化一个字符串时老报错:输入字符串的格式不正确。 调试了好久才知道是需要对大括号进行转义,正确的代码应如下:

批处理:将pkg文件移到指定文件夹中

使用SISWare解压完sis文件后,文件的存放结构为: bin ├PKG Files ├001.pkg ├002.pkg ├001 ├002 现在需要写个批处理,将pkg文件移到对应的文件夹中,如将001.pkg移动到001文件夹,002.pkg移动到002文件夹... 将上边内容保存到PKG Files文件夹中(pkg.bat),使用时双击即可。注意当文件名中含有空格时会移动失败,需手工移动。

C#字符串数组所有项组成一个字符串的方法

JavaScript的数组有个join方法,使用它能将数组的各项用指定的分隔符连接起来: 但在C#的数组对象中一直没找到类似的方法,今天无意中在VS的自动完成列表中看到string对象有两个方法可以实现类似功能:

新云允许链接本站的域名设置失效分析

在NewAsp CMS Version 4.0.0 SP1的后台常规设置中有一项允许链接本站的域名,通过设置可以允许其他站点链接使用本站的资源(外链): 奇怪的是如上图示已经在XX站后台设置允许www.mzwu.com外链,但从mzwu上转到资源下载链接时还是跳转到了防盗链页面,允许链接本站的域名设置失效了!什么原因呢?搜索到新云防盗链相关代码: 代码没问题,难道Request.ServerVariables("HTTP_REFERER")接收有问题?在XX站上增加了一个页面专门获取HTTP_REFERER的值并显示,得到的是空值!最终发现是mzwu上使用Response.Redirect在服务器端跳转到资源地址下载,而使用Response.Redirect跳转Request.ServerVariables("HTTP_REFERER")获取不到值,目前没有解决方法

VS2008对引发异常和再次引发捕获异常的建议

运行代码分析后收到如下警告: 警告 4 CA2201 : Microsoft.Usage : 'CommandLine.Call(string, params string)' 创建类型为 'Exception' 的异常,该异常类型不够具体,不应由用户代码引发。如有可能引发此异常实例,请使用其他异常类型。 E:\www\Demo\ClassLibrary1\CommandLine.cs 29 ClassLibrary1 警告 5 CA2200 : Microsoft.Usage : 'CommandLine.Call(string, params string)' 再次引发捕获的异常并将其显式地指定为一个参数。请改用不带参数的“throw”以保留该异常最初引发时所在的堆栈位置。 E:\www\Demo\ClassLibrary1\CommandLine.cs 53 ClassLibrary1…

C#读取WinRAR安装路径

using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string args) { Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.…

CSS精确控制背景图像显示位置

使用CSS的background-image、background-repeat和background-position三个属性,我们就能很容易控制容器背景图的显示位置,这也就为我们将多个图标做到一个文件中并通过CSS控制在不同地方显示不同图案提供了条件,为什么要这么做呢?优势很多: ·将众多图标做到一个文件中能减少客户端对服务器端的请求次数; ·一次性将图片下载到本地,页面显示许多图标或是做些图片翻转效果时能马上显示图片,减少等待时间; 上边这张图来源于淘宝网,下边我们看下如何通过CSS控制在不同位置显示出不同的图案: 下边我们着重说下background-position这个属性,它用于设置或检索对象的背景图像位置,其值通常有三种形式:…

主题安装时提示:证书错误

同一批一起打包的主题,大部分能正常安装,有的安装时提示"证书错误",按常理判断是没签名的原因,可这些主题是一起打包的,不太可能有的签名有的没签名。后来想到可能是原始的被打包的主题没签名,用SISWare打开一看,果然。 未签名 签名后

C#字段和属性的区别

在C#中,我们可以非常自由的、毫无限制的访问公有字段,但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值、或是要求字段只能读或只能写,或是在改变字段时能改变对象的其他一些状态,这些单靠字段是无法做到的,于是就有了属性,属性中包含两个块:set和get,set块负责属性的写入工作,get块负责属性的读取工作。在两个块中都可以做一些其他操作,如在set中验证赋的值是否符合要求并决定是否进行赋值。当缺少其中一块时属性就只能读或只能写,set和get块中属性必需有一个,因为即不能读又不能写的属性是没有意义的。 从例子中可看到属性其实就是对私有字段的读取和写入,以便做些公有字段无法完成的任务,他的使用方式和公有字段完全一样,所以可以理解成属性是为了满足对公有字段的特殊需求而产生的附属品。因而当我们选择使用属性还是使用字段时,主要看需求,如果不需设置访问权限、不需在赋值时检测值是否满足要求、不需要在赋值时修改对象其他一些状态等特殊的需求时,使用公有字段即可,否则就使用属性。

C#保存远程文件到本地

/// <summary> /// 保存远程文件到本地 /// </summary> /// <param name="url">远程文件URL</param> /// <param name="file">保存的本地路径</param> /// <returns></returns> public bool DownloadFile(string url, string file) { try { (new System.Net.WebClient()).DownloadFile(url,file); return true;…