2016-06-15 8 views
0

ディレクトリに385個のサブフォルダがあり、各サブフォルダにはCSVファイルといくつかのpdfsが含まれています。私は、各サブフォルダを調べ、pdfsのリストをtxtファイルに書き込む方法を見つけようとしています。 (Rubyよりも優れた言語があることは分かっていますが、私はプログラミングが初めてで、唯一の言語です)。Ruby - サブフォルダからtxtファイルにファイル名を書き込む

私は仕事を終わらせるコードを持っていますが、問題は私ですそこにはサブフォルダのディレクトリもリストされています。例: "document.pdf"をテキストファイルに書き込む代わりに、 "subfolder/document.pdf"と書いています。

誰かがpdfファイル名だけを書く方法を教えてもらえますか?

ありがとうございます!ここに私のコードです:

class Account 
    attr_reader :account_name, :account_acronym, :account_series 
    attr_accessor :account_directory 

    def initialize 
    @account_name = account_name 
    @account_series = account_series 
    @account_directory = account_directory 
    end 

    #prompts user for account name and record series so it can create the directory 
    def validation_account 
    print "What account?" 
    account_name = gets.chomp 
    print "What Record Series? " 
    account_series = gets.chomp 
    account_directory = "c:/Processed Batches Clone/" + account_name + "/" + account_series + "/Data" 
    puts account_directory 
    return account_directory 
    end 
end 

processed_batches_dir = Account.new 

#changes pwd to account directory 
Dir.chdir "#{processed_batches_dir.validation_account}" 

# pdf list 
processed_docs = [] 

# iterates through subfolders and creates list 
Dir.glob("**/*.pdf") { |file| 
    processed_docs.push(file) 
    } 

# writes list to .txt file 
File.open("processed_batches.txt","w") { |file| 
    file.puts(processed_docs) 
    } 
+0

を、Rubyの上のあなたのコメントが。私は何十年もプログラミングをしてきたし、少なくとも十数の言語を使用してきました。私は新しいプログラマーにRubyを始めることを勧めます!それは私のお気に入りです。 –

答えて

0

良い方法があるかもしれませんが、あなたは常にパスの最後のスラッシュのsplit可能性:面白いです

Dir.glob('**/*.pdf').each do |file_with_path| 
    processed_docs.push(file_with_path.split('/').last) 
end 
関連する問題