tag 标签: setcurrentdirectory

相关博文
  • 热度 14
    2012-11-29 20:44
    1206 次阅读|
    1 个评论
    终于把《windows 程序设计》看了三百多页(三分之一),在看《windows 程序设计》第九章时, HEAD程序代码中有个疑问,具体问题如下:   代码为:     szBuffer = '/0' ;   // If setting the directory doesn't work, maybe it's   // a drive change, so try that.   if (!SetCurrentDirectory (szBuffer + 1))   {        szBuffer = ':' ;        szBuffer = '/0' ;        SetCurrentDirectory (szBuffer + 2) ;   }    ....(省略代码)   这个szBuffer+1 是什么意思? szBuffer , szBuffer 为什么这么设置?   解答: 这是LB_DIR影响的结果造成的。 1.如果是文件,列表中的一项就显示为文件名; 2.如果不是文件,就可能为文件夹或者驱动盘。 本文探讨的是属于第二种情况,即为不是文件。szBuffer列表一项的字符串,它有3种可能:                      //上一层目录      //文件夹名称,如 ,一个名为world的文件夹            //驱动盘名称,如 ,c盘   举个例子: 如果你选中的是一个叫world的文件夹,则szBuffer内容为 ,通过  szBuffer = '/0' ; 得到 ,通过  szBuffer = '/0' ; 得到 = ':' ;        szBuffer = '/0' ; 把szBuffer从[-c-/0 变为 [-c:/0 从szBuffer+2开始后面的字符串为路径,所以用 SetCurrentDirectory (szBuffer + 2) ;把c:/0设置为当前路径。