测开笔记--Typescript: 文件复制到指定目录

开发背景:

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

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

面临的文件:

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

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

解决方案:

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

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;

                })

        }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178462.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么我不能给shopify的图片添加alt

首先我们要明白是什么ALT标签,为什么要添加这个标签,这个标签有什么用 ALT标签是什么 ALT属性是HTML的一部分,它为那些无法查看图像的用户提供替代的文本描述。 ALT标签有什么用 使用ALT属性还可以帮助搜索引擎爬虫更好地理解您的网站内容。有…

SpringBoot配置多个不同Thymeleaf模板位置

最近开发当中需要在SpringBoot配置多个不同Thymeleaf位置,特此记录下相关过程 默认Thymeleaf配置 当我们集成thymeleaf后,会有一个默认的配置信息,可以在配置文件当中配置默认的信息,修改路径,前后缀等等参数 spring:thymeleaf…

华为OD机试 - 小华地图寻宝(Java JS Python C)

题目描述 小华按照地图去寻宝,地图上被划分成 m 行和 n 列的方格,横纵坐标范围分别是 [0, n-1] 和 [0, m-1]。 在横坐标和纵坐标的数位之和不大于 k 的方格中存在黄金(每个方格中仅存在一克黄金),但横坐标和纵坐标之和大于 k 的方格存在危险不可进入。小华从入口 (0,0) …

学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录 如何远程连接MySQL数据库1.创建用户来运行,此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议(超文本传输协议)简介HTT…

Airtest自动化测试工具实战演练

一开始知道Airtest大概是在年初的时候,当时,看了一下官方的文档,大概是类似Sikuli的一个工具,主要用来做游戏自动化的,通过截图的方式用来解决游戏自动化测试的难题。最近,移动端测试的同事尝试用它的poco库…

LCM-LoRA模型推理简明教程

潜在一致性模型 (LCM) 通常可以通过 2-4 个步骤生成高质量图像,从而可以在几乎实时的设置中使用扩散模型。 来自官方网站: LCM 只需 4,000 个训练步骤(约 32 个 A100 GPU 小时)即可从任何预训练的稳定扩散 (SD) 中提取出来&#…

sed文本 免交互

目录 什么是sed 概念 格式 基本用法 命令的选项 打印第三行 打印日志文件 打印奇数行 打印偶数行 第三行退出 删除第三行 sed在不打开文件的情况下修改文件内容 在后面添加 选项a 在字符中间添加 \n 实现追加换行 全部追加 在前面插入 选项i 替换 选项c …

HIVE SQL建表常用数据类型一览

类型描述BOOLEANtrue/falseTINYINTtrue/1字节的有符号整数 -128~127SMALLINT2个字节的有符号整数,-32768~32767INT4个字节的带符号整数BIGINT8字节带符号整数FLOAT4字节单精度浮点数DOUBLE8字节双精度浮点数DEICIMAL任意精度的带符号小数STRING字符串,变…

第二题-差值-【第六届传智杯程序设计挑战赛解题分析详解复盘】(JavaPythonC++实现)

🚀 欢迎来到 ACM 算法题库专栏 🚀 在ACM算法题库专栏,热情推崇算法之美,精心整理了各类比赛题目的详细解法,包括但不限于ICPC、CCPC、蓝桥杯、LeetCode周赛、传智杯等等。无论您是刚刚踏入算法领域,还是经验丰富的竞赛选手,这里都是提升技能和知识的理想之地。 ✨ 经典…

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)

Java精品项目源码基于SpringBoot的智慧园区管理系统(v67) 大家好,小辰今天给大家介绍一个智慧园区管理系统,演示视频公众号(小辰哥的Java)对号查询观看即可 文章目录 Java精品项目源码基于SpringBoot的智慧园区管理系统(v67)难度…

vmware系列:【VMware篇】8-vCenter的安装与配置(一)以IP地址安装

【VMware篇】8-vCenter的安装与配置(一)以IP地址安装 vmware系列文章链接第1章前言第2章安装前准备第3章安装步骤一、第一阶段二、打开主机shell、SSH三、添加域名解析四、第二阶段五、设置密码过期时间六、新建集群添加主机vmware系列文章链接 VMware官网下载注册: VMware…

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析

【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析 文章目录 【图像分割】【深度学习】PFNet官方Pytorch代码-PFNet网络损失函数模块解析前言PM定位模块损失函数FM聚焦模块损失函数总结 前言 在详细解析PFNet代码之前,首要任务是成功运行PF…

压缩包文件丢失?4个正确找回方法分享!

“我有一个很重要的压缩包保存在电脑上,但是不知道为什么里面有些文件丢失了。有什么方法可以快速找回压缩文件?请大家给我支支招吧!” 如果我们的文件太多,将它们放在压缩包中不仅能让文件更有序,还能更合理的节省电脑…

LD_PRELOAD劫持

LD_PRELOAD劫持 <1> LD_PRELOAD简介 LD_PRELOAD 是linux下的一个环境变量。用于动态链接库的加载&#xff0c;在动态链接库的过程中他的优先级是最高的。类似于 .user.ini 中的 auto_prepend_file&#xff0c;那么我们就可以在自己定义的动态链接库中装入恶意函数。 也…

tp8 使用rabbitMQ(3)发布/订阅

发布/订阅 当我们想把一个消息&#xff0c;发送给 多个消费者的时候&#xff0c;我们把这种模式叫做发布/订阅模式&#xff0c;比如我们做两个消费者&#xff0c;其中一个消费者把消息写入磁盘中&#xff0c;别一个消费者把消息结果输出到屏幕上&#xff0c;就要用到发布订阅模…

产品化和商品化

我们经常会在IT产业听过以下岗位&#xff1a; 1、产品序列&#xff1a;产品行销经理 2、产品序列&#xff1a;产品经理、需求分析师、产品详细设计工程师、UIUE设计师 3、产品序列&#xff1a;业务架构师、应用架构师、数据架构师、技术架构师 4、研发序列&#xff1a;创新原型…

Java 图片验证码需求分析

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 图片验证码 需求分析 连续因输错密码而登录失败时&#xff0c;记录其连续输错密码的累加次数&#xff1b;若在次数小于5时&#xff0c;用户输入正确的密码并成功登录…

前K个高频单词(Java详解)

一、题目描述 给定一个单词列表 words 和一个整数 k &#xff0c;返回前 k 个出现次数最多的单词。 返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率&#xff0c; 按字典顺序 排序。 示例1&#xff1a; 输入: words ["i", "love&…

浅谈硬件连通性测试几大优势

硬件连通性测试是确保硬件系统正常运行、提高系统可靠性和降低生产成本的关键步骤。在现代工程和制造中&#xff0c;将连通性测试纳入生产流程是一个明智的选择&#xff0c;有助于确保硬件产品的质量和性能达到最优水平。本文将介绍硬件连通性测试的主要优势有哪些! 一、提高系…

nginx当作ftp展示文件

server { listen 3432; server_name ftp.tech.com; auth_basic “登录认证”; auth_basic_user_file /etc/nginx/conf.d/pass.db; client_max_body_size 1024m; access_log /var/log/nginx/${host}.access.log main; root /data/; autoindex on; autoindex_exact_size off; aut…