在上一篇文章《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 】

【原创】ABAP根据文件路径获取文件所在目录(续)的更多相关文章

  1. 【原创】ABAP根据文件路径获取文件所在目录

    *&---------------------------------------------------------------------* *& Form frm_get_pat ...

  2. python 通过文件路径获取文件hash值

    import hashlib import os,sys def CalcSha1(filepath): with open(filepath,'rb') as f: sha1obj = hashli ...

  3. HDFS 读取、写入、遍历文件夹获取文件全路径、append

    版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/37573081 1.从HDFS中 ...

  4. oc 根据文件路径获取文件大小

    第一种封装: -(NSInteger)getSizeOfFilePath:(NSString *)filePath{ /** 定义记录大小 */ NSInteger totalSize = ; /** ...

  5. c++从文件路径获取目录

    场景 c++从文件路径获取目录 实现代码 初始化是不正确的,因为需要转义反斜杠: string filename = "C:\\MyDirectory\\MyFile.bat"; ...

  6. MFC获取文件路径和文件夹路径

    MFC的界面中,需要实现这样两个功能: 1.在界面上加一个按钮,单击按钮弹出一个对话框选择文件,在工程中获得文件的路径: 2.在界面上加一个按钮,单击按钮弹出一个对话框选择文件夹,在工程中获取文件夹的 ...

  7. WPF 打开指定文件路径的文件资源管理器

    x 需求是想让WPF打开一个指定文件路径的文件夹,但是搜出来的八成都是<打开文件>的这样的↓ Microsoft.Win32.OpenFileDialog open_file = new ...

  8. iOS开发——数据持久化Swift篇&文件目录路径获取(Home目录,文档目录,缓存目录等)

    文件目录路径获取(Home目录,文档目录,缓存目录等)   iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒.下面介绍常用的程序文件夹目录:   1,Home ...

  9. Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等)

    当前位置: 首页 > 编程社区 > Swift > Swift - 常用文件目录路径获取(Home目录,文档目录,缓存目录等) Swift - 常用文件目录路径获取(Home目录,文 ...

随机推荐

  1. react 父组件向子组件传递函数

    这段时间一直在使用react,由于这react是单向数据绑定,总感觉有点不适用,毕竟之前一直都在使用angular,但学习还是要继续,做了一个迭代的项目,都差点忘记要总结一下这个react了,现在可以 ...

  2. VSCode 小鸡汤 第00期 —— 安装和入门

    简介 这将是一个新的系列,将会以 Visual Studio Code(后文都简称为 VSCode 啦)的操作,环境配置,插件介绍为主,为大家不定期的介绍 VSCode 的一些操作技巧,所以取名 VS ...

  3. 写在使用 Linux 工作一年后

    start 去年公司空了几台台式机,当时看了下似乎配置比我用的乞丐版 air 略高一些,而且除了 ssd 以外还有一个 1T 的大硬盘,加上后面可能会有一段时间不做 iOS 了,那就不需要 macOS ...

  4. 深入Qt 学习 -- 反射机制(比较简单清楚)

    相对于Java天生的这一特性, C++并不具备;但进入到Qt领域,这一切都变得简单自如了. 从Qt的元对象系统可知,除了提供信号/槽机制的特性之外,它还提供了以下特性: ■ QObject::meta ...

  5. DDD实战7 对项目进行单元测试

    此次采用的方法是 创建一个单元测试项目 在其中利用HttpClient 模拟浏览器 webapi 进行post请求来验证程序. [TestClass] public class ProductTest ...

  6. Codeforces 15C Industrial Nim 简单的游戏

    主题链接:点击打开链接 意甲冠军: 特定n 下列n行,每一行2的数量u v 表达v礧:u,u+1,u+2···u+v-1 问先手必胜还是后手必胜 思路: 首先依据Nim的博弈结论 把全部数都异或一下, ...

  7. WinForm导出文件

    1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Text;  5 ...

  8. OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题

    开启深度测试后OpenGL就不会再去绘制模型被遮挡的部分,这样实现的显示画面更为真实,但是由于深度缓冲区精度的限制,对于深度相差非常小的情况(例如在同一平面上进行两次绘制),OpenGL就不能正确判定 ...

  9. 解决引用 System.Windows.Interactivity程序集生成多国语言文件夹fr、es、ja等问题

    原文:解决引用 System.Windows.Interactivity程序集生成多国语言文件夹fr.es.ja等问题 通过以下方式对 System.Windows.Interactivity程序集添 ...

  10. SAP HR工资配置项1---工资计算周期配置

    对于工资计算,三个方面需要配置:工资计算期.工资类型.工资. 下面是工资期内的配置: 1.在定义参数 在参数指示工资的频率. 主题 设置期间參数 菜单路径 SAP 用户化实施指南→工资核算→工资核算: ...