2017-03-23 14 views
1

Rパッケージを開発するときにディレクトリにファイルをリストすることが可能かどうか疑問に思っていました。 thisページから、私はsystem.file()を使ってRパッケージに含まれているファイルを参照するべきだと読んでいます。しかし、これはディレクトリでは機能しません。私は特定のディレクトリ内のファイルを一覧表示する方法を探しています:「」「INST」ディレクトリの中に、私が使用します。Rパッケージの開発のために/ instディレクトリのファイルを一覧表示する

list.files(system.file("a/", package = [package_name])) 

または

list.files(system.file("a", package = [package_name])) 

しかし、これではありませんでした空の文字列を返しました。さらに、パッケージ内で複数の.sqlファイルを一覧表示することをお勧めしますか?

+0

私はあなたが忘れてしまったと思います。 'list.files(system.file(" inst "、" a "、package = [package_name]))'を試してください。 package引数は、ランダムなフォルダだけでなく、パッケージのルートフォルダを指します。 – takje

+0

はい、正しいです。私はなぜ、devtools :: load_all()をどこかで使ってみました。これの前に、それは "inst"なしで完全に働いた。私は今バージョンが正しいと疑っています。 – Michael

答えて

0

system.file(package = 'package_name')はパッケージディレクトリのルート(?system.fileからのリテラル)への絶対パスを返します。しかし、devtoolsはこの関数を上書きし、必要に応じてpackage作業ディレクトリ(load_all()コマンドを起動したパス)の絶対パスに置き換えます。

ただし、パッケージが存在しない場合(例:system.file(package = 'non_existing_package'))、パスは相対パスを返します。

> system.file('a', package = 'existing_package') 
"C:/.../package_directory/a" 
> system.file('a', package = 'non_existing_package') 
"a" 

作業ディレクトリがどのように設定されているかによって、状況によっては動作する可能性があります。

関連する問題