开发背景:

        自动化开发语言使用的是TypeScript框架用的是playwright。有个测试脚本需要先将几个文件复制粘贴新建项目文件夹下,系统读取该文件,然后生成页面信息

关键字:文件复制粘贴新建项目文件夹

面临的文件:

        1. 文件的复制粘贴应该使用什么方法

        2. 动态文件夹路径应该如何获取

解决方案

        1. 文件的组织粘贴使用的是fs库、path库。首先生成fspath库的对象。这两个库属于默认就存在的文件,不需要导入了【我印象是,如果有问题评论反馈吧】

public fs = require(“fs“)

public path = require(“path“)

然后生成源文件的文件路径路径分成2部分:文件夹 + 文件名。定义两个名称

public rootPath: string = “../../test/path/”  

public fileName: string = “test.txt

补充说明: “../../”这个是文件夹相对于类文件的路径可以认为是回退几个文件夹。不理解的可以查查文件夹相对路径相关的内容或者评论提问

然后使用path库下的join方法,可以将两个路径拼接成一个路径

let rootFilePath = this.path.join(this.rootPath, this.fileName)

这样就得到了源文件的路径

同理获取目标文件路径。但是由于目标文件是动态获取的,已知获取位置用户目录的Document文件夹下。

这里使用process.env.USERPROFILE来定位用户目录,完整代码如下:

文件夹路径:

let targetPath: string = process.env.USERPROFILE + “\Documents\Test\”

生成的目标文件路径:

let targetFilePath: string = this.path.join(this.targetPath, this.fileName)

        2. 生成了两个路径后,使用fs库下的copyFile方法,可以将源文件复制到目标文件

this.fs.copyFile(this.path.resolve(__dirname, rootFilePath), targetFilePath, (err) => {

        if(erro) throw err;

})

回顾下:自动化测试过程针对文件的处理不常见,所以一开始面临这种问题的时候,需要查询下对应开发语言对于文件、文件夹、文件操作的库和方法然后针对性的使用,因为比较少见,所以以笔记的形式记录一下。

完整代码如下:

class projectHelper{

        public rootPath: string = “../../test/path”

        public targetPath: string = this.path.join(this.targetPath, this.fileName)    

        public fileName: string = “test.txt

        public fs = require(‘fs’)

        public path = require(“path”)

        async copyPathFile(){

                this.targetFilePath = this.path.join(this.targetPath, this.fileName)

                this.rootFilePath = this.path.join(this.rootPath, this.fileName)

                this.fa.copyFile(this.path.resolve(__dirname, jsonFileRootPath), jsonFileTargetPath, (err) => {

                        if(err) throw err;

                })

        }

}

原文地址:https://blog.csdn.net/Bierante/article/details/134671334

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5939.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注