【工作记录】一串带中文及空格的路径引发的“血案”
2017-01-06 22:36
337 查看
即使是技术大牛,偶尔也会挖个坑,而我已在填坑的路上越走越远。
--- 前言
“VR** S 4.*.0.0“”版本截止到今天下午已经提测了,而这一版除了新加入游戏下载“断点续传”功能之外,就一个功能,解决之前违法路径问题。
为什么要解决路径?因为我们上了好多其他SDK的精品游戏,有一个特定,使用破解器后,游戏的安装路径只能纯英文,不能有任何特殊字符以及英文(包括下划线)。在发上一版本的时候,就预想到了这个问题,于是在程序中埋了个监听,拿到了用户设定的安装路径,方便我们分析,部分路径如图:
![](https://img-blog.csdn.net/20170106220627945)
可见,用户的安装路径千奇百怪(好多奇葩中文路径太辣眼,不予以展示),我们要做到,就是即便用户的安装路径都不符合规范,我们也让他们能够成功的玩上破解游戏。
首先,我们允许允许用户可以设置三个下载路径:
![](https://img-blog.csdn.net/20170106221224954)
第一次开启系统,默认设置一个路径,当然,大部分路径现在看来不合法,也就是说,这三个路径设置满了,就不能设置其他路径了(以后这里肯定会出问题),要使得所有升级用户都至少有一个合法路径怎么办?
方案一:
公司自己产的游戏,仍然按照这个套路来下载,对于破解游戏,加入特殊标识,下载时将其下载到一个特殊路径(合法),数据库ExtentionPath中多加一条数据就搞定这个问题。(按照这个思路,80%代码我已经敲完的时候,组长推翻了这个方案,心里阴影面积请脑补)。。。。。。
方案二:
根据回传来的用户路径,分析一个修改策略,暴力地对用户的安装路径修改。不解之余,组长告诉了我为啥子这样做,“方案一只不过是在别人挖的坑上铺了张塑料布然后垫了点图,后人依旧会掉坑里,而且以后的路越来越难走,这次要把这个坑填掉”。好吧,准备填坑吧,于是一起想办法,最后出了个解决方案流程图:
![](https://img-blog.csdn.net/20170106223421530)
补充几点:
(1)游戏下载时候检测路径所在盘符是否剩余空间大于10G,是,允许下载。
(2)扩展路径全部不合法或者已满,则系统默认添加第四路径。
(3)这个问题,没有技术瓶颈,关键在于能够在逻辑上堵死问题出现。
总结:
这篇博客,没有写一行代码,目的只有一点:
1、以后写程序,关于路径的,尤其是在windows上编程的,一定要考虑中文以及空格等所有特殊字符!!!
--- 前言
“VR** S 4.*.0.0“”版本截止到今天下午已经提测了,而这一版除了新加入游戏下载“断点续传”功能之外,就一个功能,解决之前违法路径问题。
为什么要解决路径?因为我们上了好多其他SDK的精品游戏,有一个特定,使用破解器后,游戏的安装路径只能纯英文,不能有任何特殊字符以及英文(包括下划线)。在发上一版本的时候,就预想到了这个问题,于是在程序中埋了个监听,拿到了用户设定的安装路径,方便我们分析,部分路径如图:
可见,用户的安装路径千奇百怪(好多奇葩中文路径太辣眼,不予以展示),我们要做到,就是即便用户的安装路径都不符合规范,我们也让他们能够成功的玩上破解游戏。
首先,我们允许允许用户可以设置三个下载路径:
第一次开启系统,默认设置一个路径,当然,大部分路径现在看来不合法,也就是说,这三个路径设置满了,就不能设置其他路径了(以后这里肯定会出问题),要使得所有升级用户都至少有一个合法路径怎么办?
方案一:
公司自己产的游戏,仍然按照这个套路来下载,对于破解游戏,加入特殊标识,下载时将其下载到一个特殊路径(合法),数据库ExtentionPath中多加一条数据就搞定这个问题。(按照这个思路,80%代码我已经敲完的时候,组长推翻了这个方案,心里阴影面积请脑补)。。。。。。
方案二:
根据回传来的用户路径,分析一个修改策略,暴力地对用户的安装路径修改。不解之余,组长告诉了我为啥子这样做,“方案一只不过是在别人挖的坑上铺了张塑料布然后垫了点图,后人依旧会掉坑里,而且以后的路越来越难走,这次要把这个坑填掉”。好吧,准备填坑吧,于是一起想办法,最后出了个解决方案流程图:
补充几点:
(1)游戏下载时候检测路径所在盘符是否剩余空间大于10G,是,允许下载。
(2)扩展路径全部不合法或者已满,则系统默认添加第四路径。
(3)这个问题,没有技术瓶颈,关键在于能够在逻辑上堵死问题出现。
总结:
这篇博客,没有写一行代码,目的只有一点:
1、以后写程序,关于路径的,尤其是在windows上编程的,一定要考虑中文以及空格等所有特殊字符!!!
相关文章推荐
- 故障处理记录---网卡驱动引发的血案
- java 读取文件路径空格和中文的处理
- getResource中文或有空格路径处理
- 一个全角空格引发Jquery取值的“血案”
- getResource中文或有空格路径处理
- hello world, 想说爱你不容易 —— 一个空格引发的血案
- java 读取文件路径中空格和中文的处理
- 一个空格引发的血案
- cocos2dx 中文路径编译错误记录
- properties配置文件中空格引发的血案
- 一个空格引发的血案啊!
- java 读取文件路径空格和中文的处理
- Java文件路径空格及中文处理
- Python问题记录:如何处理中文网页中的多余空格
- 辛苦一下午最终还是逃不过换一个账户工作,由SBT默认路径不支持中文用户名说起
- getResource中文或有空格路径处理
- java 读取文件路径空格和中文的处理
- java中不支持系统路径中含有中文或空格
- java 读取文件路径空格和中文的处理
- dos命令记录以及dos下通过进程id查找工作路径