数字文件命名系统

时间:2012-09-06 16:00:36

标签: javascript

我需要你的帮助。

我希望能够拥有一个文件命名系统来检测文件名是否存在,以及它是否会在结尾处自动添加一个数字。从2开始

var myString = "2011-1234567";

myString = myString + "-2";

if (2011-1234567-2 already exists) then output new file number as: 2011-1234567-3 

所以id就像理想情况下能够创建一个函数,如果文件名已经存在,它会自动在它的末尾添加一个数字

3 个答案:

答案 0 :(得分:0)

这是非常通用......

var base_filename = "file"
var i = 0;

function newFileName(){
    i++;
    var filename = base_filename + "-" +i;
    return filename;
}

所以你会这样使用它:

var new_file = newFileName();

同样,这是非常泛型。玩一些。

答案 1 :(得分:0)

var exists = 0
function file_exists(name) {
   // replace with something suitable for your environment
   exists = 1 - exists 
   return exists
}

function new_name(suggested) {
   // just return back new name if it available
   if (!file_exists(suggested)) { return suggested }
   // try to split name to "base" and "index" parts
   var have_index = suggested.match(/^(.+)\-(\d+)$/)
   var unused_index
   if (have_index && have_index[2]) {
      base = have_index[1]
      unused_index = ++have_index[2]
   } else {
      // use entire name and start from index 2 if not found
      base = suggested
      unused_index = 2
   }
   // loop until you find next free index
   while (file_exists(base  + "-" + unused_index)) { unused_index++ }
   // ... and return result
   return base  + "-" + unused_index
}

运行new_name("tommy"),给出“tommy-2”。 new_name("tommy-2") - “tommy-3”等。当然,您需要在file_exists函数中定义自己的“存在”愿景。

答案 2 :(得分:0)

javascript中的文件命名系统?你在使用node.js吗? 如果没有,那么使用这个bash脚本:

#!/bin/bash
filename= tommy
i=0
for file in *
i++
 do mv "$filename" "${filename}-i"
done