WinForm中的暗杀杀手——相对路径
昨天在重构一个外包项目的源码时,发现对方使用了相对路径进行操作,由此想起了在使用相对路径时的潜在危险。(PS:我之前就犯过类似的错误)
在Window系统上利用相对路径进行操作时,有一个“当前目录”的概念,如果程序中是利用相对路径进行操作,
系统会认为是在当前目录下进行操作,即 相对路径 等于 当前目录 + 相对路径 所组成的绝对路径。
应用程序默认的当前目录为:程序入口所在路径。
并且在WinForm中,OpenFileDialog.RestoreDirectory 或 SaveFileDialog.SaveFileDialog 的设置都可以影响到当前目录,可以造成当前目录的改变。
当前目录一旦改变,就会影响到相对路径,进而造成文件系统的寻址不正确。
所以在实际的编程中、请谨慎使用相对路径!!!如果因为相对路径出bug,到时候你想哭都没地方哭去。