在上一篇文章《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. 为什么台湾人工智能可能抢输大陆?(XPU时代来临)

    到了 2020 年,每 3 支手机,就会有一支内建有 AI 芯片. 但目前浮出水面的 AI 芯片新创,几乎都是大陆公司. 为什么台湾这回选择缺席? 「我听说 CPU.GPU,没有听过 NPU? 」11 ...

  2. Leetcode 136 Single Number 亦或

    题意就是从一堆数中找出唯一的一个只存在一个的数.除了那个数,其他的数都是两个相同的数. 通过亦或的性质: 1)a^a = 0 0^a = a 2)交换律 a^b = b^ a 3)结合律 (a^b)^ ...

  3. 使用Python破解验证码

    Keywords: python captcha Most people don’t know this but my honours thesis was about using a compute ...

  4. java中的switch结构

     switchkeyword的中文意思是开关.转换的意思,switch语句在条件语句中特别适合做一组变量相等的推断,在结构上比if语句要清晰非常多.switch语句的语法格式为:switch(表达式) ...

  5. OpenGL(四) 左右手坐标系及基本坐标变换

    左手坐标系.右手坐标系.笛卡尔坐标系 左手坐标系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向. 右手坐标系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他 ...

  6. 卷积(convolution)与相关(correlation)(matlab 实现)

    1. 卷积(convolution) 输出 y(n) 是作为在 x(k) 和 h(n−k)(反转和移位)重叠之下的样本和求出的. 考虑下面两个序列: x(n)=[3,11,7,0,−1,4,2],−3 ...

  7. 圆周卷积(circular convolution)

    1. 定义与概念 圆周卷积也叫循环卷积, 2. 实现(matlab) 以圆周的形式卷积两个信号: >> z = ifft(fft(x).*fft(y));

  8. springboot 集成swagger ui

    springboot 配置swagger ui 1. 添加依赖 <!-- swagger ui --> <dependency> <groupId>io.sprin ...

  9. WPF - 资源收集

    原文:WPF - 资源收集 OpenExpressApp的UI现在是使用WPF,所以熟悉WPF是必须的,以下我将可能用到的一些相关内容随时记录下来,以备查阅.此篇文章将不断更新,感兴趣的可以看看,也欢 ...

  10. 【转载】MySQL Replication 环境安装与配置

    安装[root@msr01 ~]# yum install mysql-serverInstalled:mysql-server.x86_64 0:5.1.73-3.el6_5 Dependency ...