您的位置:首页 > 其它

【工作记录】一串带中文及空格的路径引发的“血案”

2017-01-06 22:36 337 查看
      即使是技术大牛,偶尔也会挖个坑,而我已在填坑的路上越走越远。

                                                                                                         --- 前言

    “VR** S 4.*.0.0“”版本截止到今天下午已经提测了,而这一版除了新加入游戏下载“断点续传”功能之外,就一个功能,解决之前违法路径问题。

      为什么要解决路径?因为我们上了好多其他SDK的精品游戏,有一个特定,使用破解器后,游戏的安装路径只能纯英文,不能有任何特殊字符以及英文(包括下划线)。在发上一版本的时候,就预想到了这个问题,于是在程序中埋了个监听,拿到了用户设定的安装路径,方便我们分析,部分路径如图:

                            


       可见,用户的安装路径千奇百怪(好多奇葩中文路径太辣眼,不予以展示),我们要做到,就是即便用户的安装路径都不符合规范,我们也让他们能够成功的玩上破解游戏。

       首先,我们允许允许用户可以设置三个下载路径:



        第一次开启系统,默认设置一个路径,当然,大部分路径现在看来不合法,也就是说,这三个路径设置满了,就不能设置其他路径了(以后这里肯定会出问题),要使得所有升级用户都至少有一个合法路径怎么办?

      方案一:

      公司自己产的游戏,仍然按照这个套路来下载,对于破解游戏,加入特殊标识,下载时将其下载到一个特殊路径(合法),数据库ExtentionPath中多加一条数据就搞定这个问题。(按照这个思路,80%代码我已经敲完的时候,组长推翻了这个方案,心里阴影面积请脑补)。。。。。。

      方案二:

      根据回传来的用户路径,分析一个修改策略,暴力地对用户的安装路径修改。不解之余,组长告诉了我为啥子这样做,“方案一只不过是在别人挖的坑上铺了张塑料布然后垫了点图,后人依旧会掉坑里,而且以后的路越来越难走,这次要把这个坑填掉”。好吧,准备填坑吧,于是一起想办法,最后出了个解决方案流程图:

 


        补充几点:

       (1)游戏下载时候检测路径所在盘符是否剩余空间大于10G,是,允许下载。

       (2)扩展路径全部不合法或者已满,则系统默认添加第四路径。

       (3)这个问题,没有技术瓶颈,关键在于能够在逻辑上堵死问题出现。

       总结:

       这篇博客,没有写一行代码,目的只有一点:

       1、以后写程序,关于路径的,尤其是在windows上编程的,一定要考虑中文以及空格等所有特殊字符!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: