Electron——复制文件操作

前言

在electron我们如何操作文件呢,首选一般肯定都是fs;

内容

nodejs

因为copyFile不能保证复制操作的原子性,所以舍弃;

windows copy

copy命令参数

C:\Users\WangYang\AppData\Roaming\Electron>copy /?
将一份或多份文件复制到另一个位置。

COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B]
     [+ source [/A | /B] [+ ...]] [destination [/A | /B]]

  source       指定要复制的文件。
  /A           表示一个 ASCII 文本文件。
  /B           表示一个二进位文件。
  /D           允许解密要创建的目标文件
  destination  为新文件指定目录和/或文件名。
  /V           验证新文件写入是否正确。
  /N           复制带有非 8dot3 名称的文件时,
               尽可能使用短文件名。
  /Y           不使用确认是否要覆盖现有目标文件
               的提示。
  /-Y          使用确认是否要覆盖现有目标文件
               的提示。
  /Z           用可重新启动模式复制已联网的文件。
  /L           如果源是符号链接,请将链接复制
               到目标而不是源链接指向的实际文件。

命令行开关 /Y 可以在 COPYCMD 环境变量中预先设定。
这可能会被命令行上的 /-Y 替代。除非 COPY
命令是在一个批处理脚本中执行的,默认值应为
在覆盖时进行提示。

要附加文件,请为目标指定一个文件,为源指定
数个文件(用通配符或 file1+file2+file3 格式)。

示例

C:\Users\WangYang\AppData\Roaming\Electron>copy wxWorkHelper.db Cache /V
已复制         1 个文件。

代码

const exec = require('child_process').exec

/**
 * 复制文件到指定目录
 * @param src
 * @param dest
 * @param callbackFun
 */
export function cmdCopy (src, dest, callbackFun) {
    try {
        exec(`copy ${ src } ${ dest } /Y /V`, (err) => {
          if (err) {
            callbackFun(false)
            return
          }
          callbackFun(true)
        })
    } catch (e) {
      callbackFun(false)
    }
}
学无止境,谦卑而行.
posted @ 2021-09-15 00:58  。思索  阅读(34)  评论(5编辑  收藏  举报