利用 FileUtils 移动文件夹,但出现错误。in 'rename':Permission denied。想请教下是什么回事
#2 楼 @413472212 在脚本上右键选择“以管理员身份运行”,试下。
如果还不行,打开 cmd 输入 rename old_file new_file
可以吗?
#6 楼 @skandhas @fsword 说的应该是 cmd 下的rename
如果你使用了 FileUtils 的 move 或 mv,第一个参数要求是文件名或是文件名的数组,不能是目录。如果是目录,则会 Permission denied。
#13 楼 @413472212 前面我说的第一参数不能是目录不太准确。 第一参数是目录的话,只能在同一分区下(windows)。
FileUtils.mv "r:/x","r:/y"
x 为目录。 结果有 2 中情况:
你应该是往别的盘上移动文件夹吧?才会出现 Permission denied
#13 楼 @413472212 那就这样呗: 先拷贝到目的目录,然后再删除原来的目录内容,不就行了。
require 'fileutils'
FileUtils.cp_r "r:/t","k:/"
FileUtils.remove_dir "r:/t"
t 是已存在的目录,把 t 目录内容拷贝到 K 盘下,然后删除 r 盘下的 t 目录内容。
#17 楼 @413472212 这个行为和 windows 有关。在 windows 下,MoveFile这个 api,官方是有说明的: The one caveat is that the MoveFile function will fail on directory moves when the destination is on a different volume. 如果跨分区移动目录,需要使用MoveFileEx这个 api。