0

text.txt次のような単一スペース (タブではなく) を使用してインデントされた複数行のテキストを含むテキスト ファイルがあるとします。

My folder1/
  My folder2/ 
  My folder3/ 
     file1.md
My folder4/

たとえば、実際のディレクトリ テンプレートは次のようになります。

Proposal/
 rules/
 proposal/
  document.tex
  figs/
  tabs/
  ref/
  log/
  src/
   master.r
   crdat/
   andat/
  temp/
  data/
   raw/
   clean/

Admin/
  budget/
  contract/
  invoices/
  receipts/
  team/
   hiring/
   vitae/
  gantt/  
  forms/
  misc/

Study/
 document.tex
 figs/
 tabs/
 ref/
 log/
 src/
  master.r
  crdat/
  andat/
 temp/
 data/
  raw/
  clean/

Dissemination/
 presentations/
  conference1/
   submission.md
   slides.tex
   notes.md
   admin/
    registration/
    travel/
    receipts/
    program/
    forms/
  conference2/
 manuscripts/
  journal1/
   submission/
    letter_v1.tex
    manuscript_v1.pdf
    replication_v1.zip
    comments/
     reviewer1.txt
   R&R/
    letter_v2.tex
    manuscript_v2.tex
    diff.tex
    replication_v2.zip
  journal2/

master_notes.md
TODOs.md
README.md

基本的に、ファイルはディレクトリ構造のテンプレートです。このテンプレートは、ユーザーが設定できます。彼女はさまざまなプロジェクトにさまざまなテンプレートを使用でき、名前は一般的です. 唯一の制約は、階層がスペースを使用して確立され、フォルダーがスラッシュで終わることです。

そのようなディレクトリ テンプレートを入力として受け取り、現在の作業ディレクトリにディレクトリ構造を作成する関数を作成したいと考えています。擬似コードは次のとおりです。

lines <- readLines(text.txt)
last.indent <- 0
for (i in lines) {
  Create directory structure by looking at leading character and last characters (folders end in /)
  using dir.create(i) or file.create(i)
}
4

1 に答える 1