我正在尝试创建并写入一个新文件,使用的是
@logFile = File.open("C:\Users\---\Desktop\mylog.log", "w+")
什么也没有发生。我的程序使用
@logFile.write ("Hello")
@logFile.flush
这一行看起来运行得很好(没有崩溃或其他问题),但我看不到任何新创建的文件。
我错过了什么?
我正在尝试创建并写入一个新文件,使用的是
@logFile = File.open("C:\Users\---\Desktop\mylog.log", "w+")
什么也没有发生。我的程序使用
@logFile.write ("Hello")
@logFile.flush
这一行看起来运行得很好(没有崩溃或其他问题),但我看不到任何新创建的文件。
我错过了什么?
"C:\\Users\\---\\Desktop\\mylog.log"
或者 "C:/Users/---/Desktop/mylog.log"
或者 'C:\Users\---\Desktop\mylog.log'
像这样 'C:\Users\---\Desktop\mylog.log'.gsub('\\','/')
这里也需要双重反斜杠,'和\需要使用单引号进行转义。
另一个与问题无关但非常方便的提示:使用块方法打开文件,以便清楚地知道何时关闭文件,请参见此示例
File.open(path, 'w') do |file|
file.puts "Hello"
end
C:
驱动器的工作目录是什么,现在应该实际上有一个名为Users---Desktopmylog.log
的文件,由你原来有缺陷的代码版本创建。不过,我已经很久没有做过Windows编程了,所以我可能是错的。 - Jörg W Mittagpath = File.join("C:","Program Files","Blah")
来创建路径。 - whodini9你应该始终使用 path = File.join("C:","Program Files","Blah")
确保它在任何架构上都能正常工作。
File.join()
来生成嵌套路径,而不是字符串。 - whodini9