mirror of https://gitee.com/cf-fz/WebCAD.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.8 KiB
70 lines
1.8 KiB
5 years ago
|
import * as path from 'path';
|
||
|
import * as http from 'https';
|
||
|
import * as fs from "fs";
|
||
|
|
||
|
/**
|
||
|
* 下载文件到指定的文件地址
|
||
|
*
|
||
|
* @param {string} url
|
||
|
* @param {string} filePath
|
||
|
*/
|
||
|
export function downLoadFile(url: string, filePath: string)
|
||
|
{
|
||
|
if (fs.existsSync(filePath))
|
||
|
fs.unlinkSync(filePath);
|
||
|
else
|
||
|
fs.mkdirSync(path.dirname(filePath));
|
||
|
let file = fs.createWriteStream(filePath);
|
||
|
http.get(url, function (response)
|
||
|
{
|
||
|
response.pipe(file);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 拷贝文件.
|
||
|
*
|
||
|
* @param {*} source 目标文件的地址
|
||
|
* @param {*} targetFile 拷贝到新的地址
|
||
|
*/
|
||
|
export function copyFileSync(source: string, targetFile: string)
|
||
|
{
|
||
|
//if target is a directory a new file with the same name will be created
|
||
|
if (fs.existsSync(targetFile))
|
||
|
{
|
||
|
if (fs.lstatSync(targetFile).isDirectory())
|
||
|
{
|
||
|
targetFile = path.join(targetFile, path.basename(source));
|
||
|
}
|
||
|
}
|
||
|
fs.writeFileSync(targetFile, fs.readFileSync(source));
|
||
|
console.log('targetFile: ', targetFile);
|
||
|
}
|
||
|
|
||
|
export function copyFolderRecursiveSync(source, target)
|
||
|
{
|
||
|
let files = [];
|
||
|
//check if folder needs to be created or integrated
|
||
|
let targetFolder = path.join(target, path.basename(source));
|
||
|
if (!fs.existsSync(targetFolder))
|
||
|
{
|
||
|
fs.mkdirSync(targetFolder);
|
||
|
}
|
||
|
//copy
|
||
|
if (fs.lstatSync(source).isDirectory())
|
||
|
{
|
||
|
files = fs.readdirSync(source);
|
||
|
files.forEach(function (file)
|
||
|
{
|
||
|
let curSource = path.join(source, file);
|
||
|
if (fs.lstatSync(curSource).isDirectory())
|
||
|
{
|
||
|
copyFolderRecursiveSync(curSource, targetFolder);
|
||
|
} else
|
||
|
{
|
||
|
copyFileSync(curSource, targetFolder);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|