如何自动打开我创建的文件?

时间:2011-10-20 16:38:47

标签: ruby

我在运行Ruby脚本时创建了一个文件。在脚本完成后,如何设置脚本以使用默认编辑器或文本编辑器打开文件?

例如,我创建了一个名为“FooBar.txt”的文件,该文件会将大量信息加载到其中。我怎么能在之后打开它?

我确信这很简单,但每次我搜索它时,它都会打开一个文件来添加文本或在脚本中编辑。我实际上并没有用程序打开文件。

1 个答案:

答案 0 :(得分:1)

您可以进行系统调用。

这是Windows的一个示例:

filename = "the_list.txt"
File.open(filename, "w"){|file|
      file << "Some data\n"
}
`call notepad #{filename}`

这会使用给定的文件名调用记事本。

调用外部程序的一些变体是:

`notepad #{filename}`
system( "notepad #{filename}")
system( "call notepad #{filename}")
%x{call notepad #{filename}}

您甚至不需要添加记事本:

%x{call #{filename}}

这取决于主应用程序,该应用程序分配给您创建的文件的扩展名。

当您告诉您需要哪个系统和哪个编辑器时,可能会有更多详细信息。

另一种可能性:

require 'open3'
Open3.popen3("call #{filename}")
#or:
#Open3.popen3("call notepad #{filename}")

优点是主程序不会等到子进程结束。

Variant as script:将以下代码存储为“file_build.rb”。

filename = ARGV.first
File.open(filename, "w"){|file|
      file << "Some data\n"
}

require 'open3'
puts "Call Editor"
Open3.popen3("call notepad #{filename}")
puts "End of script"

现在您可以致电file_build.rb test.txt。创建 test.txt ,调用编辑器并关闭脚本。编辑器一直在运行,至少在我的测试中做到了(WinXP)。