鸿蒙开发之跨设备文件访问

分布式文件系统为应用提供了跨设备文件访问的能力,开发者在多个设备安装同一应用时,通过基础文件接口,可跨设备读写其他设备该应用分布式文件路径(/data/storage/el2/distributedfiles/)下的文件。

例如:多设备数据流转的场景,设备组网互联之后,设备A上的应用可访问设备B同应用分布式路径下的文件,当期望应用文件被其他设备访问时,只需将文件移动到分布式文件路径即可。

开发步骤

1.完成分布式组网。
首先将需要进行跨设备访问的设备连接到同一局域网中,同帐号认证完成组网。

2.访问跨设备文件。
同一应用不同设备之间实现跨设备文件访问,只需要将对应的文件放在应用沙箱的分布式文件路径即可。

设备A上在分布式路径下创建测试文件,并写入内容。示例中的context的获取方式请参见获取UIAbility的上下文信息。

import fs from '@ohos.file.fs';let context = ...; // 获取设备A的UIAbilityContext信息
let pathDir = context.distributedFilesDir;
// 获取分布式目录的文件路径
let filePath = pathDir + '/test.txt';try {// 在分布式目录下创建文件let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);console.info('Succeeded in createing.');// 向文件中写入内容fs.writeSync(file.fd, 'content');// 关闭文件fs.closeSync(file.fd);
} catch (err) {console.error(`Failed to openSync / writeSync / closeSync. Code: ${err.code}, message: ${err.message}`);
}

设备B上在分布式路径下读取测试文件

import fs from '@ohos.file.fs';let context = ...; // 获取设备B的UIAbilityContext信息
let pathDir = context.distributedFilesDir;
// 获取分布式目录的文件路径
let filePath = pathDir + '/test.txt';try {// 打开分布式目录下的文件let file = fs.openSync(filePath, fs.OpenMode.READ_WRITE);// 定义接收读取数据的缓存let buffer = new ArrayBuffer(4096);// 读取文件的内容,返回值是读取到的字节个数let num = fs.readSync(file.fd, buffer, {offset: 0});// 打印读取到的文件数据console.info('read result: ' + String.fromCharCode.apply(null, new Uint8Array(buffer.slice(0, num))));
} catch (err) {console.error(`Failed to openSync / readSync. Code: ${err.code}, message: ${err.message}`);
}

怎样学习鸿蒙?

首先必学的是开发语言 ArkTS,这是重中之重,然后就是ArkUI声明式UI开发、Stage模型、网络/数据库管理、分布式应用开发、进程间通信与线程间通信技术、OpenHarmony多媒体技术……。中间还有许多的知识点,都整理成思维导图来分享给大家~
在这里插入图片描述
此外,小编精心准备了一份联合鸿蒙官方发布笔记整理收纳的《鸿蒙开发学习笔记》,内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。

【有需要的小伙伴,可以扫描下方二维码免费领取!!!】

快速入门

  • 开发准备
  • 构建第一个ArkTS应用(Stage模型)
  • 构建第一个ArkTS应用(FA模型)
  • 构建第一个JS应用(FA模型)
    在这里插入图片描述

开发基础知识

  • 应用程序包基础知识
  • 应用配置文件(Stage模型)
  • 应用配置文件概述(FA模型)
    在这里插入图片描述

资源分类与访问

  • 资源分类与访问
  • 创建资源目录和资源文件
  • 资源访问
    在这里插入图片描述

学习ArkTs语言

  • 初识ArkTS语言
  • 基本语法
  • 状态管理
  • 其他状态管理
  • 渲染控制
    在这里插入图片描述

基于ArkTS声明式开发范式

  • UI开发(ArkTS声明式开发范式)概述
  • 开发布局
  • 添加组件
  • 显示图片
  • 使用动画
  • 支持交互事件
  • 性能提升的推荐方法

在这里插入图片描述

兼容JS的类Web开发范式

  • 概述
  • 框架说明
  • 构建用户界面
  • 常见组件开发指导
  • 动效开发指导
  • 自定义组件
    在这里插入图片描述

Web组件

  • 概述
  • 设置基本属性和事件
  • 并发
  • 窗口管理
  • WebGL
  • 媒体
  • 安全
  • 网络与连接
  • 电话服务
  • 数据管理

  • 在这里插入图片描述

应用模型

  • 概述
  • Stage模型开发指导
  • FA模型开发指导
    在这里插入图片描述
2024完整鸿蒙学习资料领取方式:扫描下方二维码即可~

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

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

相关文章

软件测试之【软件测试初级工程师技能点全解】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀初级测试工程师技能点👉测试理论基…

Shell脚本之数组

数组 数组中可以存放多个值(bash 只支持一维数组)数组元素的索引从0开始数组在括号内指定数组的值,每个值仅能用空格分割 其中:30为索引0 20为索引1 10为索引2 60为索引3 以此类推,不过注意索引是从0开始的 如果数组中…

vue布局设置——使用 el-drawer 打造个性化 Admin 后台布局设置

在前端开发中,我们常常需要为 admin 后台构建灵活且个性化的布局设置。今天,我要分享的是如何利用 el-drawer 来实现这样一个有趣的功能。 首先,我们来看一下主要的设置参数: 1. theme: 用于定义主题,可以根据需求切换…

【已解决】attributeerror: ‘FreeTypeFont‘ object has no attribute ‘getsize‘

😎 作者介绍:我是程序员行者孙,一个热爱分享技术的制能工人。计算机本硕,人工制能研究生。公众号:AI Sun,视频号:AI-行者Sun 🎈 本文专栏:本文收录于《AI实战中的各种bug…

ctfshow web入门 phpCVE web312web314

web311 web312 IMAP协议(因特网消息访问协议)它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。它运行在TCP/IP协议之上,使用的端口是143,在php中调用的是imap_open函数来实现功能…

学习java

在实验室看见这本书,无聊看了下,写出了第一个java代码 成功下载了eclipse并且汉化。 写了自己的第一个java程序: package ttttt;public class ttttt {public static void main(String[] args) {System.out.println("hello world")…

Unreal自定义字体中,缺少字怎么办,有没有字表?

关键词:自定义字体,字表,编码,UTF-8,4E00-9FFF,4E00-9FA5,字符查重,字符唯一, 问题: 游戏中经常要自定义字体, 自定义字体往往要做离线字库 offline fonts 离线字库 离不开字符表。…

调味品企业的销量增长秘诀:五丰黎红引领大厨革新之路

随着时代的发展和消费升级,调味品行业的竞争愈发激烈,在此大环境之下,企业需要不断寻找创新的突破点来实现销量的增长。众所周知,调味品行业的销售渠道主要有餐饮、家庭消费和食品加工,按销售额的占比约为6&#xff1a…

[JAVASE] 类和对象(二)(续篇)

目录 一. static 修饰成员方法 1.1 基本使用 1.2 注意事项 (重点) 1.2.1 1.2.1 二. 代码块 2.1 代码块的分类及使用 2.1.1 静态代码块 2.1.2 实例代码块 2.1.3 普通代码块 2.2 代码块的执行顺序 三. 对象的打印 3.1 打印对象的引用 3.2 重写 toString 方法 四. 总结 一…

idea上如何新建git分支

当前项目在dev分支,如果想在新分支上开发代码,如何新建一个分支呢?5秒搞定~ 1、工具类选择git,点击New Branch 或者右下角点击git分支,再点击New Branch 2、在弹出的Create New Branch弹窗中,输入你的新分支…

el-table组件选中后使用toggleRowSelection无法取消已选中的数据——bug记录-骚操作解决

先说本文重点解决的问题: 存在的问题:当右侧已选中的数据中,删除了左侧其他页面的数据,但是左侧数据切换到其他页面后,左侧还保留选中的状态。 最近在写后台管理系统的时候,遇到一个需求: 左…

linux性能监控之lsof

lsof:list open files,显示所有打开的文件以及进程信息,我们通常用来检查特定的文件被哪些进程打开 [rootk8s-master ~]# lsof --help lsof: illegal option character: - lsof: -e not followed by a file system path: "lp" lso…

网络工程师----第二十七天

计算机基 第四章:网络层 网络层提供服务的特点:网络层向上只提供简单的、无连接的、尽最大努力交付的数据报服务,不保证可靠通信。 网际协议IP: *地址解析协议ARP(Address Resolution Protocol) *网际控制报文协议ICMP(Inter…

长图拼接技巧大揭秘:轻松实现横向拼接,一键批量处理方法

在数字化时代,我们经常会遇到需要将多张图片拼接成一张长图的情况,无论是用于制作海报、展示报告,还是制作社交媒体上的长图故事,掌握长图拼接的技巧都显得尤为重要。本文将为大家揭秘长图拼接的实用技巧,并介绍办公提…

React脚手架,配置环境变量(生产模式,开发模式)

项目搭建方式:react脚手架(create-react-app) 1. 下载依赖: npm install dotenv npm install dotenv-expandnpm install dotenv-cli -S 2.配置环境变量: 项目根部录下创建文件.env .env.pro .env.dev 配置package.json - scripts…

群晖 Synology DSM7 过热关机解决方法

最近已经提示我过热关机过两次了,这两次一次是用虚拟机,一次是批量使用Synology Photos批量上传照片: 但是我没有对主机进行任何的位置移动以及硬件修改操作,散热环境没有发生变化。以前使用从来没有出现过这个问题,同…

聚水潭和金蝶云星空单据接口对接

聚水潭和金蝶云星空单据接口对接 对接系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”,旨在帮助企业打造…

自集成式 HTTP 代理方案

前言 大部分程序员,想必都会有一个常用的抓包代理工具; 但在座的各位,可曾见过这样一款集成在 Web 应用中的代理工具? ​,时长00:45 它是明显区别于传统代理工具的,有以下特性: 零安装、零配…

解析流中 apts 与 vpts的分布

流中 apts 与 vpts的分布情况,同时使用图显示出来 一,最好的方式是使用EasyICE 来查看,这个自动化工具是很好用的: 二, 当EasyICE不能打出理想的数据的时候,可以自己来提取数据,画出对应的图&a…

tomcat--安装

官网:Apache Tomcat - Welcome! 官网文档:Apache Tomcat 8 (8.5.100) - Documentation Index 帮助文档:Apache Tomcat Home - Apache Tomcat - Apache Software Foundation FAQ - Apache Tomcat - Apache Software Foundation yum安装 查…