当前位置: 首页 > news >正文

关于安卓文件复制的杂谈(一)文件复制,文件夹复制

背景

一些很基础的东西,往往用起来,找起来,乱七八糟,所以特此记录

环境

win10,jdk8+,as4+

备注

不考虑安卓沙箱机制,这里讲解的是思路,示例中,是以应用内部目录进行测试

开发

把一个文件,复制到另外一个目录

这里是比较简单的,注意的点就是:
(1)判断目表目录是否存在,否则创建后再进行复制
(2)源文件是否存在
核心代码如下:

    public static boolean copyFile(String sourceFilePath, String targetFolderPath) {try {new File(targetFolderPath).mkdirs();File sourceFile = new File(sourceFilePath);File targetFile = new File(targetFolderPath,sourceFile.getName());InputStream in = new FileInputStream(sourceFile);OutputStream out = new FileOutputStream(targetFile);byte[] buffer = new byte[1024];int length;while ((length = in.read(buffer)) > 0) {out.write(buffer, 0, length);}in.close();out.close();return true;} catch (IOException e) {e.printStackTrace();return false;}}

把一个文件夹里面的东西,复制到另外一个文件夹

这里去看网上的资料,大坑,迫不得已,花费了几十分钟踩坑,才得出这个方法。
思路如下:

基础文件判断

(1)判断目标文件夹是否存在,否则创建
(2)判断源文件夹是否存在,否则报错

判断是目录还是文件

首先,这里要有一个思想,就是如果是复制源是一个目录,那么我们对应的目标源,也应该有一个目录,然后后续再把目录里面的东西复制进去。如果复制源是文件,那么直接复制即可


那么,是不是又涉及到了一个递归逻辑,就是:
如果是目录,就目标源创建后递归数据,如果是文件,则复制?
核心代码如下:

    public static void copyFolder(File sourceFolder, File targetFolder) {if (sourceFolder.isDirectory()) {if (!targetFolder.exists()) {targetFolder.mkdirs();}String[] files = sourceFolder.list();if (files != null) {for (String file : files) {File sourceFile = new File(sourceFolder, file);File targetFile = new File(targetFolder, file);if (sourceFile.isDirectory()) {targetFile.mkdirs();}copyFolder(sourceFile, targetFile);}}} else {try {FileInputStream fis = new FileInputStream(sourceFolder);FileOutputStream fos = new FileOutputStream(targetFolder);byte[] buffer = new byte[1024];int length;while ((length = fis.read(buffer)) > 0) {fos.write(buffer, 0, length);}fis.close();fos.close();} catch (IOException e) {e.printStackTrace();}}}

上述的方法,进行实际测试,效果良好,如有问题,可以及时反馈!!!
tha’s all-----------------------------------------------------------------------------

相关文章:

关于安卓文件复制的杂谈(一)文件复制,文件夹复制

背景 一些很基础的东西,往往用起来,找起来,乱七八糟,所以特此记录 环境 win10,jdk8,as4 备注 不考虑安卓沙箱机制,这里讲解的是思路,示例中,是以应用内部目录进行测试 开发 把一个文件&a…...

Lucene查询语法,适用于 ELk Kibana 查询

Lucene查询语法,适用于 ELk Kibana 查询 Elasticsearch 构建在 Lucene 之上,过滤器语法和 Lucene 相同。本语法可用于 Kibana 界面的检索和 Grafana 看板对接 ES 的检索规则。 Kibana 上的检索语法Grafana 上的检索语法 全文搜索 在搜索栏输入login&…...

蓝桥杯2023年第十四届省赛真题-阶乘求和

一、题目 【问题描述】 令 S 1 ! 2 ! 3 ! . . . 202320232023 ! S 1! 2! 3! ... 202320232023!S1!2!3!...202320232023!,求 S SS 的末尾 9 位数字。 提示:答案首位不为 0。 【答案提交】 这是一道结果填空的题,你只需要算出结果后…...

多租户平台前端存储结构的选择

下图来源于cookie、localStorage 和 sessionStorage的区别及应用实例 既然localstorage无有效期,关闭浏览器还存在,那么用来存储用户的身份信息并不是太合适,先看一下B站中localstorage都存在了啥,原来把我搜索的记录都存在了下来…...

C++11 新特性:常量表达式 constexpr(下)

接上篇文章,继续说说常量表达式 constexpr 在模板编程中的使用场景。 constexpr 用于模板编程 在模板编程中,constexpr 的应用非常广泛,主要是因为它能够在编译时进行计算,这对于模板元编程、编译时断言、模板特化选择等场合尤为…...

大数据开发--02.环境准备

一.准备三台linux虚拟机 1.分别取名node1,node2,node3 2.配置静态ip 这里以node1为例,配置静态ip地址,其他node2.node3一样 配置完成之后别忘记 systemctl restart network 3.在各自的/etc/hosts文件中编辑三个Ip地址 三台都要配置, 4.然…...

选择word中的表格VBA

打开开发工具 选择Visual Basic插入代码 Sub 选择word中的表格() Dim t As Table an MsgBox("即将选择选区内所有表格,若无选区,则选择全文表格。", vbYesNo, "提示") If an - 6 Then Exit Sub Set rg IIf(Selection.Type wdSel…...

开放签开源电子签章白皮书-简版

开放签开源电子签章白皮书-简版 一、摘要: 开放签电子签章团队源自于电子合同SaaS公司,立志于通过开源、开放的模式,结合团队十多年的行业经验,将电子签章产品更简单、更低门槛的推广到各行各业中。让电子签章应用更简单&#x…...

uniapp、vue2.6、H5,利用腾讯TRTC,快速跑通1v1视频功能

多人视频聊天室搭建,官网已有相关demo和案例,需要快速搭建多人聊天室直接进入以下网站: 实时音视频 Web & H5 (Vue2/Vue3)-视频通话(含 UI)-文档中心-腾讯云说明:https://cloud.tencent.com/document/…...

Spring Data访问Elasticsearch----查询方法

Spring Data访问Elasticsearch----查询方法 一、查询lookup策略1.1 声明的查询 二、创建查询三、方法返回类型四、使用Query注解 一、查询lookup策略 Elasticsearch模块支持所有基本的查询构建功能,如字符串查询、native搜索查询、基于条件的查询和从方法名派生的查…...

PyTorch 深度学习(GPT 重译)(四)

第二部分:从现实世界的图像中学习:肺癌的早期检测 第 2 部分的结构与第 1 部分不同;它几乎是一本书中的一本书。我们将以几章的篇幅深入探讨一个单一用例,从第 1 部分学到的基本构建模块开始,构建一个比我们迄今为止看…...

视频无水印批量下载软件|抖音视频提取工具

视频无水印批量下载软件 在当今社交媒体充斥着大量优质视频内容的时代,很多用户都希望能够轻松下载自己喜爱的视频进行收藏或分享。为了满足用户的需求,我们特别推出了一款专业的视频无水印批量下载软件,让您可以方便快捷地获取喜爱的视频内容…...

【linux】环境基础|开发工具|gcc|yum|vim|gdb|make|git

目录 ​编辑 Linux 软件包管理器 yum 软件包: 操作: 拓展:lrzsz简介 Linux开发工具 Linux编辑器-vim使用 vim 的基本概念 命令模式 插入模式 底行模式 vim 命令模式的操作指令 vim 底行模式的操作命令 Linux编译器-gcc/g使用 功能 格…...

小程序中实现轮播图左向堆叠

1、效果图&#xff1a; 轮播图左向堆叠 2、封装的组件&#xff1a; my-swiper.wxml <view><view class"tower-swiper" bindtouchend"TowerEnd"><view class"tower-item" wx:for"{{swiperList}}" wx:key"index&q…...

零基础入门数据挖掘系列之「建模调参」

摘要&#xff1a;对于数据挖掘项目&#xff0c;本文将学习如何建模调参&#xff1f;从简单的模型开始&#xff0c;如何去建立一个模型&#xff1b;如何进行交叉验证&#xff1b;如何调节参数优化等。 建模调参&#xff1a;特征工程也好&#xff0c;数据清洗也罢&#xff0c;都是…...

如何在Mac中删除照片?这里有详细步骤

前言 本文介绍如何从Mac中删除照片,以释放硬盘空间或更好地组织文件和文件夹。 如何使用废纸篓删除Mac上的图片 在Mac上删除图片的最简单方法之一是使用废纸篓功能。学习只需几秒钟。下面是如何删除单个图片以及如何在Mac上删除多个图片,以及一些关键和有用的提示,以使该…...

Qt笔记 事件处理_鼠标事件

什么是事件&#xff1f; 点击鼠标左键&#xff0c;双击鼠标左键&#xff0c;鼠标来回移动&#xff0c;按下键盘按钮&#xff0c;这些都是事件。 那么事件的响应机制是什么样的呢&#xff1f; 首先main函数中有一个QApplication&#xff0c;其作用是创建一个应用程序对象&…...

【Vue】三、使用ElementUI实现图片上传

目录 一、前端代码实现 二、后端代码实现 三、调试效果实现 一、前端代码实现 废话不多说直接上代码 <el-form-item prop"image" label"上传图片" v-model"form.image"><el-upload:action"http://localhost:8…...

ffmpeg的ffprobe.exe查询修改视频信息

# 查询视频信息 ffprobe -i 1.mp4Input #0, mov,mp4,m4a,3gp,3g2,mj2, from video.mp4:Metadata:major_brand : isomminor_version : 512compatible_brands: isomiso2avc1mp41encoder : Lavf58.20.100comment : 123654Duration: 00:00:15.21, start: 0.0…...

Windows 2019服务器上安装NFS服务器

提供NFS服务服务器&#xff1a; Windows 2019服务器上安装NFS服务器资源管理器 创建目录比如D:\nfshare, 鼠标邮件菜单 点击 属性&#xff0c;进行NFS共享 使用NFS服务的客户端&#xff1a; 另外一台Windows服务器&#xff0c;需要安装NFS客户端 具体操作&#xff1a;Window…...

【总结01】简单实现RAG的完整流程

目录 一、什么是 RAG&#xff1f; 1.1 核心定义 1.2 技术原理 二、完整流程代码实现 一、什么是 RAG&#xff1f; 1.1 核心定义 从本质上讲&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;是一种旨在解决大语言模型&#xff08;LLM&#xff09;“…...

AEUX插件完全指南:从设计到动效的无缝转换

AEUX插件完全指南&#xff1a;从设计到动效的无缝转换 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX AEUX是一款革命性的设计到动画转换工具&#xff0c;它架起了Figma、Sketch等设计工…...

【Python基础20讲】第17章:正则表达式

博主智算菩萨&#xff0c;专注于人工智能、Python编程、音视频处理及UI窗体程序设计等方向。致力于以通俗易懂的方式拆解前沿技术&#xff0c;从零基础入门到高阶实战&#xff0c;陪伴开发者共同成长。目前已开设五大技术专栏&#xff0c;累计发布多篇原创技术文章&#xff0c;…...

Superpowers - 15 用 Git Worktrees 打造“无尘室”开发环境:从 Superpowers 实践谈起

文章目录Pre一、为什么需要 Git Worktrees&#xff1a;上下文切换是真正的杀手1.1 传统分支切换的痛点1.2 Worktree 的核心价值&#xff1a;隔离&#xff0c;而不是复制二、Superpowers 的视角&#xff1a;Worktree 是必选项而非锦上添花2.1 三个关键技能的前置条件2.2 生命周期…...

PyTorch迁移学习实战:用ResNet18实现20类食物图像分类(附代码详解)

一、迁移学习&#xff08;Transfer Learning&#xff09;详解1. 什么是迁移学习&#xff1f;迁移学习是一种机器学习方法&#xff0c;其核心思想是将从一个任务&#xff08;源任务&#xff09;中学到的知识&#xff0c;应用到另一个相关但不同的任务&#xff08;目标任务&#…...

零成本掌握专业音频编辑:Audacity免费音频处理终极指南

零成本掌握专业音频编辑&#xff1a;Audacity免费音频处理终极指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 在数字内容创作蓬勃发展的今天&#xff0c;高质量的音频处理已成为专业创作的标配。然而&#x…...

5G NR物理层探秘:PBCH信道与MIB消息的编码、映射与波束赋形

1. PBCH信道与MIB消息的5G广播基石 当你刚打开5G手机时&#xff0c;屏幕上瞬间跳出的信号格背后&#xff0c;藏着一场精妙的物理层对话。这场对话的第一句问候&#xff0c;就来自我们今天要拆解的PBCH&#xff08;物理广播信道&#xff09;和它搭载的MIB&#xff08;主信息块&a…...

完全免费的神器,支持批量操作

今天给大家推荐一个非常不错的图片压缩软件&#xff0c;这个软件完全免费&#xff0c;没有任何的广告&#xff0c;可以完全放心使用。 Imagine图片压缩 支持图片批量压缩 这个软件安装之后就可以直接使用了&#xff0c;我们可以看到它的界面非常简单&#xff0c;而且支持图片…...

别再手动算板块强弱了!用Tushare+Flask快速搭建一个历史板块分析查询工具

从脚本到服务&#xff1a;用TushareFlask构建板块分析工具的工程实践 每次打开行情软件手动统计板块涨跌幅时&#xff0c;那些重复的点击操作总让我想起学生时代抄写课文的场景。作为量化爱好者&#xff0c;我们完全可以用代码解放双手——但问题在于&#xff0c;大多数数据分析…...

2026年,我为什么劝你认真考虑UK Biobank数据库?

在一些低门槛的数据库相继经历“拒稿潮”之后&#xff0c;UK Biobank&#xff08;英国生物银行&#xff09;这个含金量巨高的数据库&#xff0c;依旧能打&#xff0c;值得深耕&#xff01;UKB不仅拥有全球最大规模的50万参与者全基因组数据&#xff0c;还包含10万人的全身多模态…...