27 设备流转使用心得 三

前两部分参考心得 25 26 

分布式文件传输

1 源端

1 获取分布式文件路径 读取文件 写入分布式文件

2 对端

1 通过应用沙箱获取分布式文件路径 读取文件路径 与状态数据绑定

2 绑定之后UI渲染

Index

Row({space:8}){//用户当前选中的所有图片ForEach(this.photos, (p:string)=>{Image(p).width(50).height(50)})//添加图片按钮Image('/image/ic_public_add.svg').width(50).padding(4).borderRadius(6).backgroundColor('#f0f0f0').clickEffect({level:ClickEffectLevel.MIDDLE, scale:0.6}).onClick(async _=>{//拉起“图片选择器”,让用户选择图片文件let p = new picker.PhotoViewPicker()let result = await p.select({MIMEType: picker.PhotoViewMIMETypes.IMAGE_TYPE})if (result.photoUris.length > 0) {//this.photos = result.photoUris        //新选择的图片会覆盖之前已选图片this.photos.push(...result.photoUris)   //新选择的图片追加到已选图片的尾部}})
}

onCreat()

/**** 对端读取源端数据方式3:从分布式文件目录下读取源端共享的文件 *****/
let list = want.parameters?.photoList as string[]
let fullFileNames:string[] = [] //拷贝到对端应用文件目录下的完整文件名
if(list && list.length>0){let filesDir = this.context.filesDir  //应用文件保存目录let distributedFilesDir = this.context.distributedFilesDir //分布式文件保存目录list.forEach((f:string)=>{this.copyFile(distributedFilesDir+f, filesDir+f)  //把分布式共享文件目录下的临时文件拷贝到应用目录下去// fullFileNames.push(filesDir+f)  //应用文件目录下的路径名 不能 直接作为Image的src显示出来fullFileNames.push( fileUri.getUriFromPath(filesDir+f) )  //把应用文件目录下的路径名转换为URI,形如:file://cn.tedu.myapp14/data/storage/...png})this.storage.set('photoList', fullFileNames) //UIAbility与UI共享完整文件名
}this.context.restoreWindowStage(this.storage)//在目的端恢复窗口舞台,并把UIAbility中的storage传给UI

onContinue()

/***** 源端给对端传递数据方式3: 分布式文件共享 *****/
//把用户当前在UI中选中的图片拷贝到“分布式共享文件目录”下
let fileList = this.storage.get('photoList') as string[]
if(fileList.length>0){let base = this.context.distributedFilesDir //分布式文件所在目录,类似于:/data/storage/el2/distributedfileslet newFileNames:string[] = []  //重命名后的文件名列表fileList.forEach((src:string)=>{let dest = '/'+Date.now()+Math.floor(Math.random()*9000+1000)+src.substring(src.lastIndexOf('.'))  //新建的随机文件名,命名规则:/+时间戳+四位随机数+原始后缀名this.copyFile(src, base+dest)  //在源端把图库中的文件路径拷贝到分布式文件目录下,就可以同步给对端console.log('--源端:把用户选择的文件拷贝到了分布式文件目录', src, base+dest)newFileNames.push(dest)})console.log('--源端:即将共享给对端的分布式文件名:',JSON.stringify(newFileNames))wantParam['photoList'] = newFileNames //源端把需要共享给对端的文件名列表发送给对端

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

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

相关文章

操作系统真象还原:创建文件系统

14.2 创建文件系统 14.2.1 创建超级块、i结点、目录项 超级块 /** Author: Adward-DYX 1654783946qq.com* Date: 2024-05-07 10:18:02* LastEditors: Adward-DYX 1654783946qq.com* LastEditTime: 2024-05-07 11:24:50* FilePath: /OS/chapter14/14.2/fs/super_block.h* Des…

构造、析构、拷贝(Semantics of Construction,Destruction,and Copy)

1、继承体系下的对象构造 当我定义一个object如下 T object;如果T有一个默认构造函数,它会被调用。 比较不明显的是构造函数内部有大量的隐藏代码,因为编译器会扩充构造函数,一般而言编译器所做的扩充如下: 记录在成员初始化列…

WPF学习(6) -- WPF命令和通知

一 、WPF命令 1.ICommand代码 创建一个文件夹和文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Input;namespace 学习.Command {public class MyCommand : ICommand{Acti…

CCSI: 数据无关类别增量学习的持续类特定印象| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 CCSI: Continual Class-Specific Impression for data-free class incremental learning CCSI: 数据无关类别增量学习的持续类特定印象 01 文献速递介绍 当前用于医学影像分类任务的深度学习模型表现出令人鼓舞的性能。这些模型大多数需要在训练之前收集所有的…

设计模式使用场景实现示例及优缺点(行为型模式——迭代子模式)

迭代子模式(Iterator Pattern) 迭代子模式(Iterator Pattern)是一种常用的设计模式,属于行为型模式。它提供一种方法顺序访问一个聚合对象中的各个元素,而又无需暴露该对象的内部表示。 核心组件 Iterat…

中间件——Kafka

两个系统各自都有各自要去做的事,所以只能将消息放到一个中间平台(中间件) Kafka 分布式流媒体平台 程序发消息,程序接收消息 Producer:Producer即生产者,消息的产生者,是消息的入口。 Brok…

[Vulnhub] Sedna BuilderEngine-CMS+Kernel权限提升

信息收集 IP AddressOpening Ports192.168.8.104TCP:22, 53, 80, 110, 111, 139, 143, 445, 993, 995, 8080, 55679 $ nmap -p- 192.168.8.104 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 …

在RHEL9.4上启用SFTP服务

FTP存在的不足: 明文传输 FTP传输的数据(包括用户名、密码和文件内容)都是明文的,这意味着数据可以被网络上的任何人截获并读取。没有内置的加密机制,容易受到中间人攻击。 被动模式下的端口问题 FTP的被动模式需要…

读人工智能全传12人工智能导致的问题1

1. 人工智能会导致什么问题 1.1. 人工智能是一门通用技术:它的应用仅仅受限于我们的想象 1.1.1. 所有的技术都可能产生意想不到的效果,未来几十年甚至几百年内都存在可能性 1.2. 所有的技术都可能被滥用 1.2.1. 我们的无名氏祖先率先用上了火&#x…

大型土木工程项目灾害防御规划与风险评估系统

灾害防御规划更新与维护机制 SELECT DISTINCT 地质灾害类型 FROM 地质灾害信息表;SELECT 地质灾害类型, COUNT(*) AS 发生次数, (COUNT(*) * 100.0 / (

React Native和Swift有什么区别

React Native和Swift在多个方面存在显著的区别,这些区别主要体现在它们的技术基础、应用场景、性能特点、开发效率以及社区支持等方面。 一、技术基础 React Native:是一个由Meta(原Facebook)开发的开源JavaScript框架&#xff…

编写商品列表和商品编辑和商品新增页面

addvue <template><!-- 传过来的id --> <!-- {{ $route.query.id }} --> <el-formref"FormRef"style"max-width: 600px":model"FormData":rule"rules"status-iconlabel-width"auto"class"demo-r…

Python面试题:在 Python 中,如何处理内存泄漏?

在 Python 中&#xff0c;尽管有垃圾收集器&#xff08;GC&#xff09;来自动管理内存&#xff0c;有时仍可能会出现内存泄漏。内存泄漏通常是由于程序中存在长时间保留不再需要的对象&#xff0c;导致这些对象不能被垃圾收集器回收。以下是处理内存泄漏的一些方法&#xff1a;…

Spring AOP 基础知识

1.背景 按照软件重构的思想&#xff0c;当多个类中存在相同的代码时&#xff0c;需要提取公共部分来消除代码坏味道。Java的继承机制允许用户在纵向上通过提取公共方法或者公共部分(模版方法方式)至父类中以消除代码重复问题&#xff1b;日志、访问控制、性能监测等重复的非业务…

Golang | Leetcode Golang题解之第232题用栈实现队列

题目&#xff1a; 题解&#xff1a; type MyQueue struct {inStack, outStack []int }func Constructor() MyQueue {return MyQueue{} }func (q *MyQueue) Push(x int) {q.inStack append(q.inStack, x) }func (q *MyQueue) in2out() {for len(q.inStack) > 0 {q.outStack…

【web】-sql注入-login

根据网址提示打开如图&#xff1a; 查看源代码前台并没有过滤限制、扫描后台也没有发现特殊文件。看到标题显示flag is in database&#xff0c;尝试sql注入。 由于post,bp抓包如下&#xff1a; 运行python sqlmap.py -r 1.txt --dump 获取flag 42f4ebc342b6ed4af4aadc1ea75f…

昇思25天学习打卡营第20天 | 基于MindNLP+MusicGen生成自己的个性化音乐

基于MindNLPMusicGen生成个性化音乐 实验简介 MusicGen是Meta AI提出的音乐生成模型&#xff0c;能够根据文本描述或音频提示生成高质量音乐。该模型基于Transformer结构&#xff0c;分为三个阶段&#xff1a;文本编码、音频token预测和音频解码。此实验将演示如何使用MindSpo…

十年期国债收益率

十年期国债收益率是指政府发行的、期限为十年的国债的年化收益率。它被广泛视为一个国家经济健康状况和未来经济前景的重要指标&#xff0c;同时也是金融市场中的一个重要基准利率。 下面我将详细解释十年期国债收益率的相关内容及其意义。 十年期国债收益率的意义 经济健康的…

搞定ES6同步与异步机制、async/await的使用以及Promise的使用!

文章目录 同步和异步async/awaitPromisePromise的概念 同步和异步 ​ 同步&#xff1a;代码按照编写顺序逐行执行&#xff0c;后续的代码必须等待当前正在执行的代码完成之后才能执行&#xff0c;当遇到耗时的操作&#xff08;如网络请求等&#xff09;时&#xff0c;主线程会…

数据结构(初阶2.顺序表)

文章目录 一、线性表 二、顺序表 2.1 概念和结构 2.2 分类 2.2.1 静态顺序表 2.2.2 动态顺序表 2.3动态顺序表的实现 1.SeqList.h 2.SeqList.c 打印顺序表 初始化 销毁 增容 尾插 头插 在指定位置之前插入数据 尾删 头删 在指定位置删除数据 3.test.c 一、线性表 线性表&#…