假设我有两个文件a_b_c_d.txt和e_f_g_h.png S,在运行时即使用命令提示符我必须在a.txt内的那个d文件夹内的那个c文件夹中创建b文件夹,同样也用于另一个文件f-> g-> h-> e.png并且我在a和epng中的图像中有一些文本。那么,我如何从现有文件中获取值到创建的文件中。
答案 0 :(得分:1)
您可以在fs模块中找到所有文件系统操作。 http://nodejs.org/api/fs.html
但是像tapan所说的那样,如果你需要进行复杂的同步执行来操作文件系统,那么像Bash这样的东西会更适合它。
答案 1 :(得分:0)
因此,如果我正确理解您,您想在某个文件夹中获取名为“a_b_c_d.txt”的文件,并将其移动到嵌套文件夹中:
./a_b_c_d.txt -> ./b/c/d/a.txt
一般的解决方案是:
process.argv
抓取文件名。
例如,如果您将文件作为参数提供给节点,例如
node move.js "a_b_c_d.txt"
,参数“a_b_c_d.txt”将在argv数组中。__dirname
全局变量中
如果你需要它。split(...)
方法。
对于上述参数,split('.')
将生成数组['a_b_c_d', 'txt']
'a_b_c_d'
拆分'_'
,
并使用各种数组操作来提取文件名'a'
离开数组,以便留下路径['b', 'c', 'd']
并且文件名和扩展名位于各自的变量中。fs.mkdirSync(...)
来创建每个嵌套文件夹,
从b
开始(例如,使用数组的forEach(...)
方法)。
您还可以使用异步fs.mkdir(...)
并提供回调,
但在这种情况下,同步版本更容易。fs.renameSync(...)
将./a_b_c_d.txt
移至./b/c/d/a.txt
。 正如你所看到的,python或bash(如tapan所建议的)对于这个用例可能更简单,但是如果由于某种原因你有来使用节点,那么上面的建议就足够了让你入门。