带有两个按钮的Ruby Shoes App为文件命名为“A”或名称“B”

时间:2015-12-07 09:35:20

标签: ruby file rename shoes

假设我的C上有一个文件a.txt

当我在gui中按下按钮1时,我想将C:\a.txt重命名为c:\xyz_a.txt

当我在gui中按下按钮2时,我想将文件重命名为c:\a.txt

你会如何用红宝石鞋做到这一点?任何提示都会受到很多关注。

2 个答案:

答案 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