1

(PHP>=5) *假借口:我不是程序员,我只是在学习......

我已经阅读了自定义“/img”目录中的一些文件:

  • 0.jpg
  • 1.jpg
  • 2.jpg
  • ....jpg
  • 10.jpg

所以我得到了一个数组();

我需要根据 jQuery 已知的 ID 重命名数组中的每个项目(所有文件属性都设置在 HTML 表格单元格中,每个都根据需要具有 ids 和 classes)。但最令人不安的是我无法避免文件覆盖。

例如,我同时重命名 1.jpg 和 3.jpg (使用 jQuery,我重新分配了 ID(以及构建并传递给表单的新文件名):第一个文件得到了 ID=3,第三个文件得到了 ID=1)

  • 1.jpg -> 3.jpg
  • ...
  • ...
  • 3.jpg -> 1.jpg

你会看到陷阱在哪里。

所以,问题是:我是否应该创建一个“/temp”目录以避免覆盖并写入它,以便稍后重命名()或 mv()它们?还是有更透明、更快捷的方法来做同样的事情?

4

2 回答 2

1

有几种方法可以做到:

  • 将 3.jpg 移动到 temp-dir
  • 将 1.jpg 重命名为 3.jpg
  • 将 3.jpg 重命名为 1.jpg
  • 将 temp/1.jpg 移回文件夹

  • 将3.jpg重命名为3.jpg~
  • 将 1.jpg 重命名为 3.jpg
  • 将 3.jpg~ 重命名为 1.jpg

  • 在内存中加载 3.jpg
  • 将 1.jpg 重命名为 3.jpg
  • 使用旧 3.jpg 的内容创建一个文件 1.jpg(存储在您的内存中)

可能还有更多方法,但我认为这些是最好的。希望它有帮助:)

-Edit- 我认为最后一个是最快的,但它消耗的内存最多。如果你不喜欢,我会用第二个。但这是你的选择:)

于 2011-10-12T18:31:47.393 回答
0

这个包可以使用多种策略重命名目录中的文件。它可以递归地遍历一个目录并根据几种不同类型的策略重命名文件。每个策略都定义了每个文件应该如何重命名。

目前实现了几种类型的策略,例如不同习语中名称的音译和带有时间值的前缀名称。可以注册其他策略。

重命名的文件可以复制到单独的目录中。该类还可以生成有关重命名文件的 CSV 格式的报告。

于 2014-01-03T01:15:52.220 回答