在上一篇文章《ABAP根据文件路径获取文件所在目录》中,我主要的思路是采用 “SPLIT dobj AT sep INTO TABLE result_tab” 句型将文件全路径按分隔符“\”拆分到一个内表中,然后在遍历内表的过程中将行项目逐个连接起来,直到遍历至最后一个行项目时跳过(其作用相当于退出循环)。

  昨天发现 SAP 系统中其实已经有了类似功能的实现:调用功能模块 SO_SPLIT_FILE_AND_PATH ,同时传入文件的全路径 FULL_NAME ,便可返回文件名 STRIPPED_NAME 和文件所在目录 FILE_PATH 。通过 SE37 查看其实现代码,发现我的思路和 SAP 的实现是一致的,如下图所示便是 SO_SPLIT_FILE_AND_PATH 实现代码的关键部分:

  而不一样的地方在于,在其实现代码的一开始 SAP 就调用了类 CL_GUI_FRONTEND_SERVICES 中的静态成员函数 GET_FILE_SEPARATOR ,获取当前用户使用的操作系统的文件分隔符并赋值给变量 l_delimiter ,这是为了应对 Windows 、Unix 和 Mac 三大操作系统使用各自独特的文件分隔符,另外还要考虑到用户使用的是哪一种 SAP GUI —— SAPGUI for HTML 、SAPGUI for Java 或 SAPGUI for Windows 。而我使用的是 Windows 系统上的 SAPGUI for Windows ,解决了当时的问题后就没再考虑那么多……图样图森破啊!

  建议读者碰到实现文章标题所示的需求的时候,还是调用SAP的功能模块 SO_SPLIT_FILE_AND_PATH 吧!

【原创博文,欢迎大家批评指正!如需转载请注明出处 http://www.cnblogs.com/shelwin/p/3257115.html 】

最新文章

  1. C++ 回调函数 实现 的测试代码
  2. 高性能 Windows Socket 组件 HP-Socket v3.0.2 正式发布
  3. 提高tomcat的并发能力
  4. 黄聪:手机移动站Web响应式开发工具Viewport Resizer插件(360浏览器、谷歌Chrome浏览器兼容)
  5. Golang做的验证码(2)
  6. memcached单点故障与负载均衡
  7. 【转】【2015MIIC】迅雷CTO陈磊:互联网思维会害死很多传统企业
  8. [Yii][RBAC]Yii中应用RBAC完全指南
  9. C语言char s[] 和 char *s的差别
  10. enum 用法
  11. PHP中小小的header函数
  12. 剑指offer---包含min的栈
  13. [转]SQL Server 表变量和临时表的区别
  14. Job for network.service failed because the control process exited with error code
  15. 16. Antimalware (反病毒 3个)
  16. 《Dare To Dream》第六次作业:团队项目系统设计改进与详细设计
  17. karaf 控制台 常用linux指令(1)
  18. 双心一键获取winsxs的写入权限,解决VC运行库安装error1935错误
  19. break、continue区别
  20. xml总结(一 )

热门文章

  1. jquery 源码学习(四)构造jQuery对象-工具函数
  2. Real-time storage area network
  3. angular中通过$location获取路径(参数)的写法
  4. 维纳过程(Wiener Process)与高斯过程(Gaussian Process)
  5. RabbitMq核心概念和术语
  6. 转载来自朱小厮的博客的NIO相关基础篇
  7. Logical partitioning and virtualization in a heterogeneous architecture
  8. 记一次由于缓存导致的bug
  9. POJ - 2991 Crane (段树+计算几何)
  10. IDEA 自动化配置