この記事で扱っていること
- 既存フォルダの中身からプロジェクトを自動作成する方法
を紹介しています。
注意:すべてのエラーを確認しているわけではないので、記事の内容を実装する際には自己責任でお願いします。また、エラー配線は適当な部分があるので適宜修正してください。
LabVIEWのプログラム、viは、「プロジェクト」を指定していなくても独立して作成することが可能です。
ただし、プログラムを作っていく中で、プロジェクトエクスプローラによる管理をしたい、あるいはEXE化したいという場合に、後からそれらプログラムをプロジェクトに追加するという操作をすることがあります。
(本来は将来的なことを見越して最初からプロジェクトを作成した状態でプログラムを作ればいいのですが、どういう使い方をするかは自由ですしね)
手動で新規でプロジェクトを作って、そこに既存ファイルを追加していくといった方法でもいいのですが、この手間を省くために、プログラム的にプロジェクトの新規作成およびプロジェクトへのファイル追加を行うプログラムを考えました。
どんな結果になるか
フロントパネルには、プロジェクトに入れたいプログラムが一式入ったフォルダを指定するパス制御器と、作成したプロジェクトファイルの保存先を指定するパス制御器、プログラムと同じ場所にプロジェクトファイルを作成するかどうかのブールと、作成後にプロジェクトを開いたままにするかの選択をするブール、そしてプロジェクトファイル名を指定する文字列制御器を用意しています。
今回は試しに、以下のような階層を持つフォルダの中身をプロジェクトに含めることを考えてみます。
プログラムを実行することで、プロジェクトが生成されます。
プログラムの構造
やっていることはシンプルで、プロパティノード、インボークノードを駆使して、プロジェクトの生成や項目の追加を順次行っていくだけです。
プロジェクトに項目を追加する部分は、「フォルダをリスト」関数の出力の時点でファイルかフォルダかがそれぞれ分かれているため、ファイルに対しては「ファイルを追加」、フォルダに対しては「項目を追加」としています。
同じ追加操作でも、項目を追加の場合にはTypeを指定する必要があります。
Typeの種類はヘルプを見れば確認できますが、今回はフォルダなので、「Folder」としています。
自動更新でない仮想フォルダを用意する場合
上の例では、フォルダがあった場合に自動更新フォルダとしていました。
実際にプログラムを作る上でプロジェクト上のファイル管理には自動更新フォルダが便利なことが多いと思いますが、自動更新ではない、単純な仮想フォルダにして管理したいという場合もあるかと思います。
こうするには、単純に自動更新を終了させるようにプログラム側で指示してやればいいだけです。
なお、「最初から自動更新の設定をしなければいいだけなのでは?」と思われるかもしれませんが、このような書き方の場合には、プロジェクト上に仮想フォルダはできるのですがこのフォルダの中身は実際のPC上のフォルダの中身を反映してはくれません。
本記事では、既存フォルダの中身からプロジェクトを自動作成する方法を紹介しました。
このプログラムを組むのが早いか、あるいは手動でプロジェクトを作成してそこに追加するのが早いかは微妙なところかもしれませんが、このように「メンドクサイことをプログラムに任せる」処理の例として参考になればうれしいです。
ここまで読んでいただきありがとうございました。
コメント