2017-11-30 4 views
0

ディレクトリとそのサブディレクトリ内のすべてのファイルでリストを取得したいのですが、問題は、絶対パスでのみ取得できます。どうすれば絶対パスを削除できますか?コマンドのリスト内のファイルからの絶対パスのストリップ

file(GLOB_RECURSE parts chapters/*.tex) 

message(STATUS "Remove absolute part of the paths") 
foreach (_parts ${parts}) 
    file(RELATIVE_PATH ${_parts} "/home/user/latex_project/main" ${_parts}) 
endforeach() 
+0

'get_filename_component()' – arrowd

答えて

1

正しい使用法:

file(GLOB_RECURSE parts chapters/*.tex) 

message(STATUS "Remove absolute part of the paths") 
set(rel_parts) # List of relative paths 
foreach (_parts ${parts}) # Iterate over list of absolute paths 
    # Obtain relative path into local variable 
    file(RELATIVE_PATH _rel_parts "/home/user/latex_project/main" ${_parts}) 
    # Add relative path into the list 
    list(APPEND rel_parts ${_rel_parts}) 
endforeach() 
# Now variable 'rel_parts' contains list of relative paths 

それとも単にfile(GLOB_RECURSE)RELATIVEオプションを使用します。

file(GLOB_RECURSE parts RELATIVE "/home/user/latex_project/main" chapters/*.tex) 
+0

私はRELATIVEオプションについて知りませんでした。それは完璧に働く。ありがとうございました! – Jonas

0

はこのような何かを試してみてください:

を私は成功せず、これを試してみました
file(GLOB_RECURSE parts chapters/*.tex) 

message(STATUS "Remove absolute part of the paths") 
set(_tmplist) 
foreach (_parts ${parts}) 
    set(_tmpvar) 
    get_filename_component(_tmpvar "${_parts}" NAME) 
    list(APPEND _tmplist "${_tmpvar}") 
endforeach() 
set(parts "${_tmplist}") 

get_filename_component()

関連する問題