我把情况说明清点:
我有一个数据管理系统,其中涉及到对文件的删除,我的实现如下:
提供按钮在页面上并通过这个按钮把要删除的资源名称传到服务器。
取得传过来的资源名然后拼接好资源的路径
ruby 调用系统的 shell 命令例如:system "rm -r #{res_path}"
如果传过的资源路径存在的话,这个资源就会被删除。
说到这里我做了一个超级失败的事,上次没有进行路径判断,结果悲剧了
我执行了删除命令 (system "rm -rf #{res_path}/#{res_name}"
上面的的 res_path 没有给值,res_name 也没有给值,结果拼成的资源路径为"/") 然后把"/"这个目录下的东西全给删除了
经过上面的删除事件,我明白了写代码时应该多考虑些情况不然后遇到这种事会出大事的。
现在我把删除命令修改为:system "rm -r #{res_path}"
,并且对个路径进行验证。
我在命令行中尝试过,如果执行命令"rm -r #{res_path}"
时 res_path
为 root 权限时,他会提示你是否删除这个文件。而当我执行命令rm -rf #{res_path}
这个会强制的删除res_path
.``
说了这么多,我要回到主题了
现在我的删除命令是"rm -r #{res_path}"
我在页面上加一按钮用来调用这个命令。
当我res_path
为 root 权限时后台服务器就会停在那里
(提示是否删除res_path
).但是我页面上就一直停在那里不走了。
像这种情况有没有办法处理一下。例如返给页面一个不能删除 root 提示信息等。各们大牛们给点建议吧.我实在没有想出什么好的方法了。