前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WordPress 6.2 支持移动文件目录,并且更加快速高效

WordPress 6.2 支持移动文件目录,并且更加快速高效

作者头像
Denis
发布2023-04-28 21:23:43
3370
发布2023-04-28 21:23:43
举报
文章被收录于专栏:WordPress果酱WordPress果酱

WordPress 在 2.5 版本的时候就引入了 copy_dir() 方法用于将整个目录从一个位置复制到另外一个,该函数会通过递归的方式创建相应子目录并将文件复制到新文件夹中它们各自的位置。

但是 WordPress 并没有提供移动文件目录方法,这样意味着在 WordPress 如要移动某个目录,就要首先使用?copy_dir() 函数先复制整个目录到目标位置,然后再删除原始位置的目录。

这样就会花费更多的内存,磁盘空间,时间和文件操作,但是移动目录不应该这样,它应该更快更可靠,也应该更易调用。

move_dir

所以 WordPress 6.2 就引入了?move_dir()?函数用于移动目录,该函数有如下参数:

  • from?(string) – 当前位置。
  • to?(string) – 目标位置。
  • overwrite?(bool) – 是否覆盖目标位置,默认为 false。

成功则返回 true,失败则返回 WP_Error 对象,如果移动操作失败,move_dir() 则会回退到 copy_dir() 操作,如果 copy_dir()成功,则会自动删除源目录。

失败可能包含以下情形:

  • from?和?to 相同。
  • $overwrite?是 false ,但是目标位置已存在。
  • $overwritetrue,但是无法删除已存在的目标位置。
  • 回退使用?copy_dir()?且无法创建目标文件夹。

在底层 move_dir()?使用?WP_Filesystem_DirectWP_Filesystem_FTPextWP_Filesystem_ftpsockets, 和?WP_Filesystem_SSH2?等文件系统的方法 move()

move_dir()?不仅比 copy_dir() 和 delete 的组合操作更直观,而且速度也快得多,并且也消耗更少的服务器的磁盘空间和内存。

需要注意的是 OPcache 对所有移动的文件都无效,这个可以通过 WordPress 6.2 新引入的 wp_opcache_invalidate_directory() 函数来解决。

如何使用

如果开始使用 ?move_dir() 函数,并且目标位置已经存在,那就记得?$overwrite?参数要设置为 ?true

代码语言:javascript
复制
$result = move_dir( $from, $to, $overwrite );

if ( is_wp_error( $result ) ) {
????return $result;
}

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • move_dir
  • 如何使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com