const fs = require('fs').promises;
const path = require('path');
const { points, routes, scenics } = require('./data.js');
// async function copyFile(src, dest) {
// try {
// await fs.mkdir(path.dirname(dest), { recursive: true });
// await fs.copyFile(src, dest);
// console.log(`File copied successfully!`);
// } catch (err) {
// console.error(err);
// }
// }
async function copyFile(src, dest) {
const maxRetries = 10;
const retryDelay = 5000; // 1秒
let retries = 0;
while (retries < maxRetries) {
try {
await fs.mkdir(path.dirname(dest), { recursive: true });
await fs.copyFile(src, dest);
console.log(`File copied successfully!`);
return;
} catch (err) {
if (err.code === 'EBUSY') {
retries++;
console.log(`File is busy or locked. Retrying in ${retryDelay / 1000} seconds...`);
await new Promise(resolve => setTimeout(resolve, retryDelay));
} else {
throw err;
}
}
}
throw new Error('Failed to copy file after multiple retries.');
}
const sourcePath = path.join('F:/'); // 源文件路徑
const outputPath = path.join('C:/output/'); // 輸出文件路徑
function run() {
routes.forEach(route => {
const list = points.filter(item => {
return item.line && item.line.includes(route);
})
list.forEach(item => {
const fileName = item.fileName + '.jpg';
const source = path.join(sourcePath, fileName);
const destination = path.join(outputPath, `${route}/${fileName}`);
copyFile(source, destination);
})
})
scenics.forEach(scenic => {
const list = points.filter(item => {
return item.scene && item.scene.includes(scenic);
})
list.forEach(item => {
const fileName = item.fileName + '.jpg';
const source = path.join(sourcePath, fileName);
const destination = path.join(outputPath, `${scenic}/${fileName}`);
copyFile(source, destination);
})
})
}
run();
console.log('run...')
根據(jù)條件過濾出數(shù)據(jù)慢洋,并將對應(yīng)文件復(fù)制到指定目錄
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來苍狰,“玉大人办龄,你說我怎么就攤上這事×苷眩” “怎么了俐填?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長翔忽。 經(jīng)常有香客問我英融,道長,這世上最難降的妖魔是什么歇式? 我笑而不...
- 正文 為了忘掉前任驶悟,我火速辦了婚禮,結(jié)果婚禮上材失,老公的妹妹穿的比我還像新娘痕鳍。我一直安慰自己,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布笼呆。 她就那樣靜靜地躺著熊响,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诗赌。 梳的紋絲不亂的頭發(fā)上汗茄,一...
- 文/蒼蘭香墨 我猛地睜開眼环鲤,長吁一口氣:“原來是場噩夢啊……” “哼纯趋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起冷离,我...
- 正文 年R本政府宣布,位于F島的核電站钮蛛,受9級特大地震影響鞭缭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜愿卒,卻給世界環(huán)境...
- 文/蒙蒙 一缚去、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧琼开,春花似錦、人聲如沸枕荞。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渣刷,卻和暖如春鹦肿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辅柴。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- listFiles方法接受一個FileFilter對象怯疤,這個FileFilter對象就是過慮的策略對象浆洗,不同的人提...
- 1.獲取APP當前目錄路徑: 2.創(chuàng)建文件: 3.創(chuàng)建文件夾 4.將assets下文件復(fù)制到指定目錄下 首先在an...
- 工作中有大量的cvs文件少梁,需要導(dǎo)入到一個工作表中進行分列洛口,每個導(dǎo)入csv的數(shù)據(jù)到同一個sheet里要與前一個c...