假设我的C上有一个文件a.txt
。
当我在gui中按下按钮1时,我想将C:\a.txt
重命名为c:\xyz_a.txt
。
当我在gui中按下按钮2时,我想将文件重命名为c:\a.txt
。
你会如何用红宝石鞋做到这一点?任何提示都会受到很多关注。
答案 0 :(得分:0)
这是一款带有两个按钮的应用程序应用程序,可以来回重命名文件。
Shoes.app {
file_orig = "E:/abc.txt"
file_renamed = "E:/xyz_a.txt"
stack do
@push_1 = button "Rename"
@push_2 = button "Rename back"
@note = para ""
end
@push_1.click {
begin
File.rename(file_orig, file_renamed)
@note.replace "File #{file_orig} renamed to #{file_renamed}"
rescue => e
@note.replace "Error while renaming #{file_orig} : #{e.message}"
end
}
@push_2.click {
begin
File.rename(file_renamed, file_orig)
@note.replace "File #{file_renamed} renamed BACK to #{file_orig}"
rescue => e
@note.replace "Error while renaming #{file_renamed} : #{e.message}"
end
}
}
请注意,我的示例使用E
驱动器中的文件。要重命名C
驱动器中的文件,通常需要管理员权限。您可能会收到如下错误:rename': Permission denied @ sys_fail2 - (C:/abc.txt, C:/xyz_a.txt) (Errno::EACCES)
。
要为您的Shoes应用程序授予管理员权限,您可以使用Run as administrator
选项启动命令行窗口(右键单击应用程序列表中的命令图标并选择Run as administrator
),然后从该命令窗口使用shoes app.rb
运行鞋子应用程序。
答案 1 :(得分:0)
这是另一个简单的解决方案。
该文件夹为C:\ Test \,该文件名为A.txt,将使用按钮1重命名为INACTIVE_A.txt,并使用按钮2重命名为A.txt。
Shoes.app do
stack do
button "Rename A.txt to INACTIVE_A.txt" do
Dir.chdir("C:/Test")
File.rename("A.txt", "INACTIVE_A.txt")
end
button "Rename INACTIVE_A.txt to A.txt" do
Dir.chdir("C:/Test")
File.rename("INACTIVE_A.txt", "A.txt")
end
end
end