SAP内のサーバー側ディレクトリのリストを取得する必要があります。ABAPでこれを達成するにはどうすればよいですか?呼び出すことができる組み込みのSAP関数はありますか?
理想的には、パスを入力として渡すことができ、内部テーブルのファイル名のリストを返す関数が必要です。
SAP内のサーバー側ディレクトリのリストを取得する必要があります。ABAPでこれを達成するにはどうすればよいですか?呼び出すことができる組み込みのSAP関数はありますか?
理想的には、パスを入力として渡すことができ、内部テーブルのファイル名のリストを返す関数が必要です。
EPS2_GET_DIRECTORY_LISTING
と同じことを行いますが、最大200EPS_GET_DIRECTORY_LISTING
文字のファイル名を返します!
関数 RZL_READ_DIR_LOCAL を呼び出します。
FUNCTION RZL_READ_DIR_LOCAL.
*"----------------------------------------------------------------------
*"Lokale Schnittstelle:
*" IMPORTING
*" NAME LIKE SALFILE-LONGNAME
*" TABLES
*" FILE_TBL STRUCTURE SALFLDIR
*" EXCEPTIONS
*" ARGUMENT_ERROR
*" NOT_FOUND
*"----------------------------------------------------------------------
パスを NAME インポート パラメータに配置し、返された後に FILE_TBL からディレクトリ リストを読み取ります。
RZL_READ_DIR_LOCAL は、通常のローカル パスと UNC パスを処理できます。
唯一の欠点は、各ファイル名の最初の 32 文字にしかアクセスできないことです。ただし、RZL_READ_DIR_LOCAL コードに基づいて新しい関数を簡単に作成し、C プログラム出力の読み取り方法を変更できます。これは、各ファイル名の最初の 187 文字が実際に使用可能であるためです。
答えは汎用モジュール EPS_GET_DIRECTORY_LISTING を呼び出すことです。DIR_NAME -> ディレクトリの名前 FILE_MASK -> '*' を渡してすべてのファイルを取得します。
注: これは、非常に大きなファイル名 (80 文字以上) を処理しないため、名前が切り捨てられます。
Chris Carrthers と tomdemuyt の回答を読んだ後、次のように言います。
1) ファイル名の単純なリストが必要な場合は、RZL_READ_DIR_LOCAL を使用します。
2) EPS_GET_DIRECTORY_LISTING はより強力です。サブディレクトリも一覧表示できます。
ありがとうございます!
宜しくお願いします ニキ・ガラノフ
トランザクション AL11 ソース コードを見てください: RSWATCH0 フォームfill_file_list
ファイルに関するすべての情報を取得できます。
お役に立てれば!