C#文件拷贝工具

目录

工具介绍

工具背景

4个文件介绍

CopyTheSpecifiedSuffixFiles.exe.config

DataSave.txt

拷贝的存储方式

文件夹介绍

源文件夹

目标文件夹

结果

使用 *.mp4

使用 *.*

重名时坚持拷贝

可能的报错

C#代码如下

Form1.cs

Form1.cs设计

APP.config

Program.cs

Form1.Designer.cs


工具介绍


工具背景

你知道为啥我今天突然写这个吗?

我昨天下载视频,发现他全部都是分文件夹存的,一个一个开太麻烦了呢,今天就写了这个哈哈哈,全部拿出来,一下子就能全部添加到播放列表了!

只拷贝指定文件后缀的东西到新的文件夹里面,不管你原来的文件夹里面都多少个子文件夹都能给你把需要的文件复制出来(但是不会复制子文件夹,即不会复制原来的存储结构,我特意这么做的)!

你上次选的这四个选项,他会记住,后面再打开就是上次的位置。


4个文件介绍


CopyTheSpecifiedSuffixFiles.exe.config

相信你一眼就能看出来这个是干什么的了,没错!这个是这个软件的默认配置,当然你也可以在DataSave.txt中改动。


DataSave.txt

一开始是没有的,后面自动生成的哦~


拷贝的存储方式

1. 保留原文件(保留目标文件夹的重名文件)

2. 替换文件(替换目标文件夹的重名文件)

3. 保留并自动增加文件名称(拷贝的时候,后面会在后面加上_1区分,如下图)

只拷贝指定文件后缀的东西到新的文件夹里面,不管你原来的文件夹里面都多少个子文件夹都能给你把需要的文件复制出来(但是不会复制子文件夹,即不会复制原来的存储结构,我特意这么做的)!(重要的事情说两遍!为啥不说三遍?哈哈哈 因为没有因为 0.o)


文件夹介绍


源文件夹


目标文件夹


结果


使用 *.mp4


使用 *.*


重名时坚持拷贝


可能的报错

https://static.dingtalk.com/media/lQLPJwXpP0_CCKDM-80B8LDvicO4vGzluQTtO_QiALoA_496_251.png

因为你缺失这个东西,下载下就行了,一个底层的小玩意儿


C#代码如下

不想一点点弄可以直接下载上传的资源。


Form1.cs

using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Windows.Forms;namespace CopyTheSpecifiedSuffixFiles
{public partial class frmCopyFiles : Form{public frmCopyFiles(){InitializeComponent();}private Stopwatch stopwatch = new Stopwatch();public void btnCopy_Click(object sender, EventArgs e){// 创建 Stopwatch 对象stopwatch = new Stopwatch();// 开始计时stopwatch.Start();lblResDesc.ForeColor = System.Drawing.Color.Red;lblResDesc.Text = "正在拷贝,请稍等...";this.Refresh();string sourceFolderPath = txtSourceFolderPath.Text;string destinationFolderPath = txtDestinationFolderPath.Text;// 检查文件夹是否存在,不存在直接创建空的文件夹if (!Directory.Exists(sourceFolderPath)) Directory.CreateDirectory(sourceFolderPath);if (!Directory.Exists(destinationFolderPath)) Directory.CreateDirectory(destinationFolderPath);// 编辑txt文件并写入两个字符串string filePath = "DataSave.txt";// 写入文件using (StreamWriter writer = new StreamWriter(filePath)){writer.WriteLine(sourceFolderPath);writer.WriteLine(destinationFolderPath);writer.WriteLine(cboSuffixSelect.Text);writer.WriteLine(txtSuffixInfo.Text);writer.Flush(); // 刷新缓冲区,确保数据被写入文件}// 拷贝目标文件夹内部所有的.mp4文件至新文件夹中CopyFiles(sourceFolderPath, destinationFolderPath);lblResDesc.ForeColor = System.Drawing.Color.Green;lblResDesc.Text = "文件拷贝完成!";// 停止计时stopwatch.Stop();// 获取耗时TimeSpan elapsedTime = stopwatch.Elapsed;MessageBox.Show("文件拷贝完成!\n" + "程序执行耗时: " + Math.Round(elapsedTime.TotalMilliseconds / 1000, 1) + " 秒");}// 递归拷贝目标文件夹及其子文件夹中的所有.mp4文件至新文件夹中public void CopyFiles(string sourceFolderPath, string destinationFolderPath){int fileCount = 1; // 记录已存在的文件数量// 获取文件列表string[] files = Directory.GetFiles(sourceFolderPath, txtSuffixInfo.Text);foreach (string file in files){string fileName = Path.GetFileName(file);string destinationFilePath = Path.Combine(destinationFolderPath, fileName);if (File.Exists(destinationFilePath)){string input = cboSuffixSelect.Text;if (input == "1. 保留原文件"){continue; // 保留原文件,跳过拷贝}else if (input == "2. 替换文件"){File.Copy(file, destinationFilePath, true); // 替换文件}else if (input == "3. 保留并自动增加文件名称"){string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileName);string fileExtension = Path.GetExtension(fileName);string newFileName = $"{fileNameWithoutExtension}_{fileCount}{fileExtension}";fileCount++;destinationFilePath = Path.Combine(destinationFolderPath, newFileName);try{File.Copy(file, destinationFilePath); // 拷贝文件}catch (Exception e){MessageBox.Show(e.Message);}}else{MessageBox.Show("请输入正确的选项!");Application.Exit();}}else{File.Copy(file, destinationFilePath); // 拷贝文件}}string[] subDirectories = Directory.GetDirectories(sourceFolderPath);foreach (string subDirectory in subDirectories){CopyFiles(subDirectory, destinationFolderPath);}}public void Form1_Load(object sender, EventArgs e){// 添加选项到 ComboBoxcboSuffixSelect.Items.Add("1. 保留原文件");cboSuffixSelect.Items.Add("2. 替换文件");cboSuffixSelect.Items.Add("3. 保留并自动增加文件名称");// 设置默认选中项cboSuffixSelect.SelectedIndex = 2;// 创建一个txt文件并写入两个字符串string filePath = "DataSave.txt";// 检查文件是否存在if (!File.Exists(filePath)){// 创建文件并写入初始内容using (StreamWriter writer = new StreamWriter(filePath)){writer.WriteLine(ConfigurationManager.AppSettings["SourceFolderPath"]);writer.WriteLine(ConfigurationManager.AppSettings["DestinationFolderPath"]);writer.WriteLine(ConfigurationManager.AppSettings["CopyStytle"]);writer.WriteLine(ConfigurationManager.AppSettings["SuffixType"]);}}// 读取文件并输出每行内容using (StreamReader reader = new StreamReader(filePath)){txtSourceFolderPath.Text = reader.ReadLine(); // 读取第一行内容txtDestinationFolderPath.Text = reader.ReadLine(); // 读取第二行内容cboSuffixSelect.Text = reader.ReadLine();txtSuffixInfo.Text = reader.ReadLine();}}public void btnChooseSourcePath_Click(object sender, EventArgs e){FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();// 设置对话框的描述文本folderBrowserDialog.Description = "选择文件夹";// 显示对话框并获取用户选择的路径DialogResult result = folderBrowserDialog.ShowDialog();if (result == DialogResult.OK){string selectedFolderPath = folderBrowserDialog.SelectedPath;txtSourceFolderPath.Text = selectedFolderPath;}}public void btnChooseTargetPath_Click(object sender, EventArgs e){FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();folderBrowserDialog.Description = "选择文件夹";DialogResult result = folderBrowserDialog.ShowDialog();if (result == DialogResult.OK){string selectedFolderPath = folderBrowserDialog.SelectedPath;txtDestinationFolderPath.Text = selectedFolderPath;}}private void btnClose_Click(object sender, EventArgs e){Application.Exit();}}
}

Form1.cs设计


APP.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration><appSettings><!--源文件夹--><add key="SourceFolderPath" value="D:\Code_VS2019\测试文件夹"/><!--目标文件夹--><add key="DestinationFolderPath" value="C:\Users\xxxxx\Desktop\拷贝结果"/><!--复制方式--><add key="CopyStytle" value="3. 保留并自动增加文件名称"/><!--后缀格式--><add key="SuffixType" value="*.mp4"/></appSettings><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /></startup>
</configuration>

Program.cs

using System;
using System.Windows.Forms;namespace CopyTheSpecifiedSuffixFiles
{static class Program{/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main(){Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new frmCopyFiles());}}
}

Form1.Designer.cs


namespace CopyTheSpecifiedSuffixFiles
{partial class frmCopyFiles{/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.IContainer components = null;/// <summary>/// 清理所有正在使用的资源。/// </summary>/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>protected override void Dispose(bool disposing){if (disposing && (components != null)){components.Dispose();}base.Dispose(disposing);}#region Windows 窗体设计器生成的代码/// <summary>/// 设计器支持所需的方法 - 不要修改/// 使用代码编辑器修改此方法的内容。/// </summary>private void InitializeComponent(){this.btnCopy = new System.Windows.Forms.Button();this.cboSuffixSelect = new System.Windows.Forms.ComboBox();this.txtSourceFolderPath = new System.Windows.Forms.TextBox();this.txtDestinationFolderPath = new System.Windows.Forms.TextBox();this.lblSourceDesc = new System.Windows.Forms.Label();this.lblTargetDesc = new System.Windows.Forms.Label();this.btnChooseSourcePath = new System.Windows.Forms.Button();this.btnChooseTargetPath = new System.Windows.Forms.Button();this.lblSaveSelectDesc = new System.Windows.Forms.Label();this.lblSuffixSelectDesc = new System.Windows.Forms.Label();this.txtSuffixInfo = new System.Windows.Forms.TextBox();this.lblSuffixInfoDesc = new System.Windows.Forms.Label();this.lblResDesc = new System.Windows.Forms.Label();this.btnClose = new System.Windows.Forms.Button();this.SuspendLayout();// // btnCopy// this.btnCopy.AutoSize = true;this.btnCopy.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.btnCopy.Location = new System.Drawing.Point(494, 52);this.btnCopy.Name = "btnCopy";this.btnCopy.Size = new System.Drawing.Size(107, 52);this.btnCopy.TabIndex = 0;this.btnCopy.Text = "拷贝";this.btnCopy.UseVisualStyleBackColor = true;this.btnCopy.Click += new System.EventHandler(this.btnCopy_Click);// // cboSuffixSelect// this.cboSuffixSelect.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.cboSuffixSelect.FormattingEnabled = true;this.cboSuffixSelect.Location = new System.Drawing.Point(107, 148);this.cboSuffixSelect.Name = "cboSuffixSelect";this.cboSuffixSelect.Size = new System.Drawing.Size(198, 22);this.cboSuffixSelect.TabIndex = 1;// // txtSourceFolderPath// this.txtSourceFolderPath.Location = new System.Drawing.Point(107, 40);this.txtSourceFolderPath.Name = "txtSourceFolderPath";this.txtSourceFolderPath.Size = new System.Drawing.Size(302, 21);this.txtSourceFolderPath.TabIndex = 2;// // txtDestinationFolderPath// this.txtDestinationFolderPath.Location = new System.Drawing.Point(107, 94);this.txtDestinationFolderPath.Name = "txtDestinationFolderPath";this.txtDestinationFolderPath.Size = new System.Drawing.Size(300, 21);this.txtDestinationFolderPath.TabIndex = 3;// // lblSourceDesc// this.lblSourceDesc.AutoSize = true;this.lblSourceDesc.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.lblSourceDesc.Location = new System.Drawing.Point(27, 42);this.lblSourceDesc.Name = "lblSourceDesc";this.lblSourceDesc.Size = new System.Drawing.Size(76, 16);this.lblSourceDesc.TabIndex = 4;this.lblSourceDesc.Text = "源文件夹";// // lblTargetDesc// this.lblTargetDesc.AutoSize = true;this.lblTargetDesc.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.lblTargetDesc.Location = new System.Drawing.Point(12, 96);this.lblTargetDesc.Name = "lblTargetDesc";this.lblTargetDesc.Size = new System.Drawing.Size(93, 16);this.lblTargetDesc.TabIndex = 5;this.lblTargetDesc.Text = "目标文件夹";// // btnChooseSourcePath// this.btnChooseSourcePath.AutoSize = true;this.btnChooseSourcePath.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.btnChooseSourcePath.Location = new System.Drawing.Point(415, 37);this.btnChooseSourcePath.Name = "btnChooseSourcePath";this.btnChooseSourcePath.Size = new System.Drawing.Size(52, 26);this.btnChooseSourcePath.TabIndex = 6;this.btnChooseSourcePath.Text = "选择";this.btnChooseSourcePath.UseVisualStyleBackColor = true;this.btnChooseSourcePath.Click += new System.EventHandler(this.btnChooseSourcePath_Click);// // btnChooseTargetPath// this.btnChooseTargetPath.AutoSize = true;this.btnChooseTargetPath.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.btnChooseTargetPath.Location = new System.Drawing.Point(415, 91);this.btnChooseTargetPath.Name = "btnChooseTargetPath";this.btnChooseTargetPath.Size = new System.Drawing.Size(52, 26);this.btnChooseTargetPath.TabIndex = 7;this.btnChooseTargetPath.Text = "选择";this.btnChooseTargetPath.UseVisualStyleBackColor = true;this.btnChooseTargetPath.Click += new System.EventHandler(this.btnChooseTargetPath_Click);// // lblSaveSelectDesc// this.lblSaveSelectDesc.AutoSize = true;this.lblSaveSelectDesc.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.lblSaveSelectDesc.Location = new System.Drawing.Point(27, 151);this.lblSaveSelectDesc.Name = "lblSaveSelectDesc";this.lblSaveSelectDesc.Size = new System.Drawing.Size(76, 16);this.lblSaveSelectDesc.TabIndex = 8;this.lblSaveSelectDesc.Text = "存储方式";// // lblSuffixSelectDesc// this.lblSuffixSelectDesc.AutoSize = true;this.lblSuffixSelectDesc.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.lblSuffixSelectDesc.Location = new System.Drawing.Point(27, 205);this.lblSuffixSelectDesc.Name = "lblSuffixSelectDesc";this.lblSuffixSelectDesc.Size = new System.Drawing.Size(76, 16);this.lblSuffixSelectDesc.TabIndex = 9;this.lblSuffixSelectDesc.Text = "填入后缀";// // txtSuffixInfo// this.txtSuffixInfo.Location = new System.Drawing.Point(107, 203);this.txtSuffixInfo.Name = "txtSuffixInfo";this.txtSuffixInfo.Size = new System.Drawing.Size(131, 21);this.txtSuffixInfo.TabIndex = 10;// // lblSuffixInfoDesc// this.lblSuffixInfoDesc.AutoSize = true;this.lblSuffixInfoDesc.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.lblSuffixInfoDesc.ForeColor = System.Drawing.Color.DodgerBlue;this.lblSuffixInfoDesc.Location = new System.Drawing.Point(270, 206);this.lblSuffixInfoDesc.Name = "lblSuffixInfoDesc";this.lblSuffixInfoDesc.Size = new System.Drawing.Size(122, 14);this.lblSuffixInfoDesc.TabIndex = 11;this.lblSuffixInfoDesc.Text = "填入格式:*.mp4";// // lblResDesc// this.lblResDesc.AutoSize = true;this.lblResDesc.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.lblResDesc.ForeColor = System.Drawing.Color.Green;this.lblResDesc.Location = new System.Drawing.Point(338, 151);this.lblResDesc.Name = "lblResDesc";this.lblResDesc.Size = new System.Drawing.Size(263, 16);this.lblResDesc.TabIndex = 12;this.lblResDesc.Text = "请选择相应参数并点击拷贝按钮!";// // btnClose// this.btnClose.AutoSize = true;this.btnClose.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));this.btnClose.Location = new System.Drawing.Point(494, 184);this.btnClose.Name = "btnClose";this.btnClose.Size = new System.Drawing.Size(107, 52);this.btnClose.TabIndex = 13;this.btnClose.Text = "关闭";this.btnClose.UseVisualStyleBackColor = true;this.btnClose.Click += new System.EventHandler(this.btnClose_Click);// // frmCopyFiles// this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;this.ClientSize = new System.Drawing.Size(614, 258);this.Controls.Add(this.btnClose);this.Controls.Add(this.lblResDesc);this.Controls.Add(this.lblSuffixInfoDesc);this.Controls.Add(this.txtSuffixInfo);this.Controls.Add(this.lblSuffixSelectDesc);this.Controls.Add(this.lblSaveSelectDesc);this.Controls.Add(this.btnChooseTargetPath);this.Controls.Add(this.btnChooseSourcePath);this.Controls.Add(this.lblTargetDesc);this.Controls.Add(this.lblSourceDesc);this.Controls.Add(this.txtDestinationFolderPath);this.Controls.Add(this.txtSourceFolderPath);this.Controls.Add(this.cboSuffixSelect);this.Controls.Add(this.btnCopy);this.Name = "frmCopyFiles";this.Text = "文件拷贝工具";this.Load += new System.EventHandler(this.Form1_Load);this.ResumeLayout(false);this.PerformLayout();}#endregionprivate System.Windows.Forms.Button btnCopy;private System.Windows.Forms.ComboBox cboSuffixSelect;private System.Windows.Forms.TextBox txtSourceFolderPath;private System.Windows.Forms.TextBox txtDestinationFolderPath;private System.Windows.Forms.Label lblSourceDesc;private System.Windows.Forms.Label lblTargetDesc;private System.Windows.Forms.Button btnChooseSourcePath;private System.Windows.Forms.Button btnChooseTargetPath;private System.Windows.Forms.Label lblSaveSelectDesc;private System.Windows.Forms.Label lblSuffixSelectDesc;private System.Windows.Forms.TextBox txtSuffixInfo;private System.Windows.Forms.Label lblSuffixInfoDesc;private System.Windows.Forms.Label lblResDesc;private System.Windows.Forms.Button btnClose;}
}

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

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

相关文章

冠达管理:紧盯必要性 追问合理性 再融资问询透露监管新动向

在“活泼资本市场&#xff0c;提振出资者决心”一系列办法落地之后&#xff0c;再融资市场整体已明确收紧&#xff0c;但审阅尺度、相关细则还有待进一步观察。有接受采访的投行人士指出&#xff0c;现在存量项目仍在持续推进&#xff0c;监管审阅要点已在问询环节有较为充沛的…

SQL注入案例

目录 一、简介 二、案例 1.发现注入点 2.寻找注入类型 3.寻找字段数 4.将传参值设为超出数据量的大值&#xff0c;联合查询找到回显位置 5.找到数据库 6.寻找库中的表 7.寻找表中列 8.查看表中数据 附&#xff1a;SQLMap注入 1.输入指令查数据库 2.输入指令查表 3…

2023全国大学生数学建模竞赛C题思路模型代码来啦

目录 一.选题建议先发布&#xff0c;思路模型代码论文第一时间更新&#xff0c;获取见文末名片 二.选题建议&#xff0c;后续思路代码论文 C 题 蔬菜类商品的自动定价与补货决策 各题分析 获取完整思路代码见此处名片 一.选题建议先发布&#xff0c;思路模型代码论文第一时…

matplotlib 使用

import matplotlib.pyplot as plt %matplotlib inlineplt.figure()#创建一个画布 plt.plot([1, 0, 9], [4, 5, 6])#点数据&#xff0c;横坐标&#xff0c;纵坐标&#xff0c;相当于&#xff08;1&#xff0c;4&#xff09;&#xff08;0&#xff0c;5&#xff09;&#xff08;9…

log4qt库的使用

log4qt库的使用 一,什么是log4qt?二,log4qt的下载三,如何集成log4qt?1.在vs2022中集成log4qt的方法:模块一:配置log4qt的步骤步骤一,将下好的log4qt库进行解压,然后再库文件中,新建build和Log4Qt文件夹步骤二,打开cmake,有两个填写路径的位置.步骤三,点击cmake的configure按钮…

C高级day2

作业 写一个1.sh脚本&#xff0c;将以下内容放到脚本中&#xff1a; 在家目录下创建目录文件&#xff0c;dir 在dir下创建dir1和dir2 把当前目录下的所有文件拷贝到dir1中&#xff0c; 把当前目录下的所有脚本文件拷贝到dir2中 把dir2打包并压缩为dir2.tar.xz 再把dir2.…

《向量数据库指南》——AI原生向量数据库Milvus Cloud 2.3稳定性

在当今的互联网时代,稳定性是所有系统和应用程序的关键要素。无论是大型数据中心还是个人电脑,稳定性都是保证正常运行和用户体验的基础。在这个背景下,我们来谈谈 Milvus,一个开源的向量数据库,它在 2.1.0 版本中引入了内存多副本的概念。 Milvus 是一个开源的向量数据库…

redhat7.6安装weblogic12c

目录 一、环境准备 二、使用root创建用户和组 三、创建部署目录 四、上传安装包 五、创建 oraInst.loc 文件 六、创建wls.rsp 响应文件 七、进行安装 八、使用 wlst.sh 离线模式创建一个域 九、启动服务 十、浏览器访问 一、环境准备 REDHAT版本&#xff1a;Redhat…

Docker从认识到实践再到底层原理(二-3)|LXC容器

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

OJ练习第165题——修车的最少时间

修车的最少时间 力扣链接&#xff1a;2594. 修车的最少时间 题目描述 给你一个整数数组 ranks &#xff0c;表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars &#xff0c;表示总…

十五、MySQL(DCL)如何实现用户权限控制?

1、为什么要实现用户权限控制&#xff1f; 在日常工作中&#xff0c;会存在多个用户&#xff0c;为了避免某些用户对重要数据库进行“误操作”&#xff0c;从而导致严重后果&#xff0c;所以对用户进行权限控制是必须的。 2、常见的权限类型&#xff1a; ALL,ALL PRIVILEGES …

(其他) 剑指 Offer 65. 不用加减乘除做加法 ——【Leetcode每日一题】

❓ 剑指 Offer 65. 不用加减乘除做加法 难度&#xff1a;简单 写一个函数&#xff0c;求两个整数之和&#xff0c;要求在函数体内不得使用 “”、“-”、“*”、“/” 四则运算符号。 示例: 输入: a 1, b 1 输出: 2 提示&#xff1a; a, b 均可能是负数或 0结果不会溢出 …

【Linux】线程安全-信号量

文章目录 信号量原理信号量保证同步和互斥的原理探究信号量相关函数初始化信号量函数等待信号量函数释放信号量函数销毁信号量函数 信号量实现生产者消费者模型 信号量原理 信号量的原理&#xff1a;资源计数器 PCB等待队列 函数接口 资源计数器&#xff1a;对共享资源的计…

初入行的IC工程师,如何快速提高自己的竞争力?

要想成为越来越吃香的IC工程师&#xff0c;就会先经历初期的成长阶段。今天就来聊聊初入行的ICer如何快速提升自己的竞争力&#xff08;验证篇&#xff09;。 首先希望大家在选择IC行业的时候就有清晰的认知&#xff0c;这是一个不得不深耕技术的行业。我们今天所谈论的快速提…

巨人互动|游戏出海游戏出海需要考虑哪些方面?

游戏出海是指将游戏产品推向国外市场&#xff0c;以扩大用户群体和增加盈利空间&#xff0c;那么要成功地进行游戏出海&#xff0c;需要考虑哪些方面呢&#xff1f;本文小编对此来讲讲吧&#xff01; 1、目标市场选择 选择适合游戏产品的目标市场是出海的首要考虑因素&#xf…

大厂面试题之影响项目测试进度的因素有哪些?如何解决?

测试进度&#xff0c;是领导层非常关心的问题&#xff0c;测试同学把控好项目测试进度&#xff0c;必然能让面试官为你加分。 在日常测试过程中&#xff0c;要把控好测试进度&#xff0c;了解影响测试进度的因素是必不可少的&#xff0c;那么&#xff0c;影响项目测试进度的因…

监听Helm release资源

监听Helm release资源 基于helm做部署管理工具时&#xff0c;可能想要管理用户已有环境&#xff0c;这时需要将已有环境中的release信息上报到业务系统中。当用户在环境中部署新的release时&#xff0c;也需要实时监听并上报回来。下面将讲解如何去监听release资源 helm rele…

边写代码边学习之TF Attention

1. Attention 背景介绍 通常注意力机制可以使得网络资源集中到某几个需要关注的部分上&#xff0c;和有选择性的弱化对网络结果不重要的部分。网络的注意力机制来源于人的视觉注意力&#xff0c;因为人的精力有限&#xff0c;不能注意到所有的细节&#xff0c;而是有选择性的弱…

前端Vue自定义得分构成水平柱形图组件 可用于系统专业门类得分评估分析

引入Vue自定义得分构成水平柱形图组件&#xff1a;cc-horBarChart 随着技术的发展&#xff0c;传统的开发方式使得系统的复杂度越来越高&#xff0c;一个小小的改动或小功能的增加可能会导致整体逻辑的修改&#xff0c;造成牵一发而动全身的情况。为了解决这个问题&#xff0c…

当AI遇到IoT:开启智能生活的无限可能

文章目录 1. AI和IoT的融合1.1 什么是人工智能&#xff08;AI&#xff09;&#xff1f;1.2 什么是物联网&#xff08;IoT&#xff09;&#xff1f;1.3 AI和IoT的融合 2. 智能家居2.1 智能家居安全2.2 智能家居自动化 3. 医疗保健3.1 远程监护3.2 个性化医疗 4. 智能交通4.1 交通…