【发布时间】:2010-11-22 08:03:54
【问题描述】:
我正在开发一个文件管理系统,如果存在同名文件,我希望包含一个自动版本控制,例如 bates numbering。我想在文件名和扩展名之间插入一个“-v0001”,并计算它们进入时的版本数。
$basename = pathinfo($filename, PATHINFO_BASENAME);
$fname = pathinfo($filename, PATHINFO_FILENAME);
while (filenameExists($basename)) {
//look for existing -vnnnn (at end of file name)
if (versioningExists($fname)) {
//roll number ahead, set bates number
} else {
//start bates numbering at 1
}
//insert bates version number (str_pad)
}
我想我会使用正则表达式模式来检查版本控制是否存在。
我的问题是:
- 使用这样的编号系统有哪些潜在问题?
- 还有哪些替代方法可以处理文件名版本控制?
我打算将其作为一个大规模导入系统,所以我不想让用户在不需要时给我唯一的文件名,而且我确实可以选择包括其他选择版本控制方案。我的系统有标签,所以文件名的重要性降低了,但我认为仍然有一些重要性。
【问题讨论】:
-
我忘了提到我只是将文件名作为指向文件系统中完全唯一文件名的数据库指针来处理。如果我愿意,我可以使用相同的文件名,我只是觉得这会让前端用户更加困惑。
标签: php regex version-control filenames file-management