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

阿赵的MaxScript学习笔记分享八《文件操作》

大家好,我是阿赵。继续分享MaxScript学习笔记第八篇
。这一篇主要讲文件操作,包括文件的I/O和导入导出。

1、获得3DsMax指定的一些目录路径

在这里插入图片描述
在这里插入图片描述

如果在电脑上安装了3DsMax软件,那么在文档里面会有一个3dsMax的文件夹,里面有一些3dsMax默认使用的文件夹。
如果我们写脚本时想使用这些路径,可以通过getDir方法,获取一部分的路径。
如果想修改这些路径,可以在3DsMax主工具栏的Customize>Configure Paths里面打开设置面板指定
在这里插入图片描述

2、创建和删除文件

1.创建文件

在这里插入图片描述

使用createFile方法,可以创建文件,如果没有指定路径,只有文件名,文件将会创建在电脑桌面。
在创建的时候,可以指定编码打开,编码有:
#current | #English | #German | #French | #Japanese | #Korean | #Chinese | #utf8 | #utf16LE | #utf16BE
也可以用布尔值指定是否带BOM头
需要注意以下几点:
(1)在创建和写入完之后,一定要调用close,不然这个文件会一直被3DsMax占用着,不能释放,也不能在外部将它删除,直到当前运行的3DsMax程序关闭
(2)如果文件已经存在,使用createFile方法再次创建,会把原来的文件删掉,再创建一个新的,原来的文件内容就没了,所以在createFile之前,一定要使用doesFileExist先判断文件是否存在
(3)使用format to方法可以往文件内逐行写入内容

2.删除文件

在这里插入图片描述

使用deleteFile方法可以删除指定路径上的文件,如果文件存在,可以删除成功,会返回true,否则返回false

3、加密文件

可以对某个文件通过某个key进行加密
encryptFile path1 path2 整型数字的key

4、读取和写入文件

1.读取文件

打开文件有2个方法
openFile和openEncryptedFile
openFile是打开没有加密的文件,具体方式是openFile path
openEncryptedFile是对应通过encryptFile 的方法,具体方式是openEncryptedFile path key
openFile系列方法默认都是只读模式
打开文件后,可以通过readLine来读取一行,或者用readChar 来读取一个字符
这个读取是逐行或者逐字符读取的,一直读取到文件末尾,继续读取就会报错,所以要用eof来判断是否到了文件末尾
在这里插入图片描述

这是一个读取一个文件所有内容的例子

2.写入文件

openFile系列方法可以接mode:<模式>
默认:只读
“a+”/”r+”:可读写,如果用format写入,会添加在原文本后面
“1”:只写,如果用format写入,会添加在原文本后面
“wt”:只写,如果用format写入,会覆盖原有文本
在这里插入图片描述
在这里插入图片描述

5、复制文件

copyFile path1 path2

6、打开文件选择窗口和保存文件窗口

在这里插入图片描述

打开一个窗口,选择需要打开的文件:
getOpenFileName caption:“标题” fileName:“默认文件名” types:“扩展名”
打开一个窗口,选择需要保存的文件:
getSaveFileName caption:“标题” fileName:“默认文件名” types:“扩展名”
其中标题、默认文件名、扩展名都可以不填,返回选择的文件路径

7、文件夹相关操作

1.判断文件夹是否存在

doesDirectoryExist path

2.选择文件夹

dir = getSavePath caption:“请选择” initialDir:(getDir #maxroot)

3.创建文件夹

makedir path

4.获取文件夹内所有文件夹

dir_array = GetDirectories (dir+”/*”)

5.获取文件夹内所有文件

fileArr = getFiles (dir+“*”)

8、导入导出常用格式

1.导入文件

在这里插入图片描述

–导入一个obj格式的文件
path1 = getdir #export+“\box.obj”
“C:\Users\admin\Documents\3dsMax\export\box.obj”
–如果不加任何参数,会打开导入设置窗口,并由用户选择参数
importfile path1
true
如果加了参数,将不会打开导入窗口,直接导入到场景
importfile path1 #noPrompt
true

2.导出文件

在这里插入图片描述

–创建2个box
boxt1 = box()
$Box:Box001 @ [0.000000,0.000000,0.000000]

boxt2 = box()
$Box:Box002 @ [0.000000,0.000000,0.000000]

path1 = getdir #export +“\box1.obj”
“C:\Users\admin\Documents\3dsMax\export\box1.obj”
–不加任何参数的导出,会导出整个场景所有物体为一个文件,并会弹出导出设置窗口
exportFile path1
true
–添加#noPrompt,不会弹出设置窗口,导出整个场景所有物体为一个文件
exportFile path1 #noPrompt
true

–加上selectedOnly:true,只导出当前选择的物体
select boxt1
OK
exportFile path1 #noPrompt selectedOnly:true
true

9、其他操作

1.获得文件大小

GetFileSize path1

2.释放文件内存

free filestream

相关文章:

阿赵的MaxScript学习笔记分享八《文件操作》

大家好&#xff0c;我是阿赵。继续分享MaxScript学习笔记第八篇 。这一篇主要讲文件操作&#xff0c;包括文件的I/O和导入导出。 1、获得3DsMax指定的一些目录路径 如果在电脑上安装了3DsMax软件&#xff0c;那么在文档里面会有一个3dsMax的文件夹&#xff0c;里面有一些3dsMa…...

将项目封装进docker进行迁移或使用

首先要理解docker的基本使用&#xff0c;本文不做过多阐述&#xff0c;博主也对docker没有了解透彻。 这里列一下docker的基本命令&#xff1a; docker info # 查看docker信息 docker -v # 查看docker版本 docker images # 查看docker所有的镜…...

matlab - 特殊矩阵、矩阵求值、稀疏矩阵

学习视频1.特殊矩阵1.1 通用特殊矩阵format % 零矩阵(全0) 幺矩阵(全1) 单位矩阵 % zeros ones eye rand(生成0~1的随机元素) randn(生成均值为1&#xff0c;方差为0的符合正太分布的随机阵)zeros(3) % 3x3的全0方阵 zeros(3, 4) % 3x4的全0矩阵 exA ones(3, 5) % 3x5的…...

Flume使用入门

目录 一. Flume简单介绍 1. Agent 2. Source 3. Sink 4. Channel 5. Event 二. 环境安装 1. 创建日志目录 2. 修改日志配置文件 3.修改运行堆内存 4. 确定日志打印的位置 5. 修改flume使用内存 内存调大 三. 校验flume 1. 安装netcat工具和net-tools工具 2. 判…...

【Servlet篇2】Servlet的工作过程,Servlet的api——HttpServletRequest

一、Servlet的工作过程 二、Tomcat的初始化 步骤1&#xff1a;寻找到当前目录下面所有需要加载的Servlet(也就是类) 步骤2&#xff1a;根据类加载的结果创建实例(通过反射)&#xff0c;并且放入集合当中 步骤3&#xff1a;实例创建好之后&#xff0c;调用Servlet的init()方…...

【JAVASE】注解

文章目录1.概述2.JDK内置注解2.1override注解2.2 Deprecated注解3.元注解4.注解中定义属性4.1 属性value4.2 属性是一个数组5. 反射注解6.注解在开发中的作用1.概述 注解&#xff0c;也叫注释&#xff0c;是一种引用数据类型。编译后也同样生成class字节码文件。 语法 [修饰…...

【408之计算机组成原理】计算机系统概述

目录前言一、计算机的发展历程1. 计算机发展的四代变化2. 计算机元件的更新换代3. 计算机软件的发展二、计算机系统层次结构1. 计算机系统的组成2. 冯诺依曼体系结构3. 计算机的功能部件1. 输入设备2. 输出设备3. 存储器4. 运算器5. 控制器三、 分析计算机各个部件在执行代码中…...

1.Spring Cloud (Hoxton.SR10) 学习笔记—基础知识

本文目录如下&#xff1a;一、Spring Cloud基础知识什么是微服务架构&#xff1f;服务拆分 有哪些注意事项&#xff1f;什么是分布式集群?分布式的 CAP 原则&#xff1f;组件 - Spring Cloud 哪几个组件比较重要&#xff1f;组件 - 为什么要使用这些组件&#xff1f;组件 - Na…...

嵌入式开发工具箱【持续更新中】【VMware、Ubuntutftp、nfs、SecureCRT、XShell、Source Insight 4.0】

一、概述 本文主要介绍嵌入式开发过程中需要用到的工具及简单的使用方法。避免在搭建嵌入式开发环境时&#xff0c;需要四处寻找文档&#xff0c;收藏此文章&#xff0c;一文搞定。 大多数嵌入式开发环境是使用Linux作为目标开发系统&#xff0c;所以开发主机一般都是Linux系统…...

深究Java Hibernate框架下的Deserialization

写在前面 Hibernate是一个开源免费的、基于 ORM 技术的 Java 持久化框架。通俗地说&#xff0c;Hibernate 是一个用来连接和操作数据库的 Java 框架&#xff0c;它最大的优点是使用了 ORM 技术。 Hibernate 支持几乎所有主流的关系型数据库&#xff0c;只要在配置文件中设置好…...

微服务一 实用篇 - Docker安装

《微服务一 实用篇 - Docker安装》 提示: 本材料只做个人学习参考,不作为系统的学习流程,请注意识别!!! 《微服务一 实用篇 - Docker安装》《微服务一 实用篇 - Docker安装》0.安装Docker1.CentOS安装Docker1.1.卸载&#xff08;可选&#xff09;1.2.安装docker1.3.启动docker…...

JavaSE22-集合2-map

文章目录一、集合概念二、map集合1、Map集合的特点2、HashMap2.1 HashMap特点2.2 创建对象2.3 常用方法2.4 遍历2.4.1 使用entrySet遍历2.4.2 使用keySet遍历3、HashMap的key去重原理一、集合概念 集合就是用于存储多个数据的容器。相对于具有相同功能的数组来说&#xff0c;集…...

【项目精选】病历管理系统设计与实现(源码+视频)

点击下载源码 企业财务管理系统主要用于电子病历来提高医院各项工作的效率和质量&#xff0c;促进医学科研、教学&#xff1b;减轻各类事务性工作的劳动强度&#xff0c;使他们腾出更多的精力和时间来服务于病人。本系统结构如下&#xff1a; 电子病例系统&#xff1a; 病人登…...

如何用Python把篮球和鸡联系起来

文章目录画个球让球转起来画个球 不管篮球和不和鸡联系起来&#xff0c;都首先得有个球&#xff0c;或者说要有一个球面&#xff0c;用参数方程可以表示为 xrcos⁡ϕcos⁡θyrcos⁡ϕsin⁡θzrsin⁡ϕ\begin{aligned} x & r\cos\phi\cos\theta\\ y & r\cos\phi\sin\th…...

【RocketMQ】消息的刷盘机制

刷盘策略 CommitLog的asyncPutMessage方法中可以看到在写入消息之后&#xff0c;调用了submitFlushRequest方法执行刷盘策略&#xff1a; public class CommitLog {public CompletableFuture<PutMessageResult> asyncPutMessage(final MessageExtBrokerInner msg) {// …...

AMBA-AXI(一)burst 传输-INCR/WRAP/Fixed

&#x1f4a1;Note&#xff1a;本文是根据AXI协议IHI0022F_b_amba_axi_protocol_spec.pdf&#xff08;issue F&#xff09;整理的。主要是分享AXI3.0和4.0部分。如果内容有问题请大家在评论区中指出&#xff0c;有补充或者疑问也可以发在评论区&#xff0c;互相学习&#x1f64…...

Java知识复习(八)Spring基础

1、什么是Spring框架&#xff1f; Spring &#xff1a;是一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性 2、Spring、SpringMVC和SpringBoot的区别 Spring主要指Spring Framework&#xff0c;就是指如上图所示的各项功能模块Spr…...

WuThreat身份安全云-TVD每日漏洞情报-2023-02-27

漏洞名称:OTFCC 缓冲区错误漏洞 漏洞级别:中危 漏洞编号:CVE-2022-35060,CNVD-2023-11996,CNNVD-202209-1527 相关涉及:OTFCC OTFCC 漏洞状态:EXP 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2022-23648 漏洞名称:MuYucms 存在任意代码执行漏洞 漏洞级别:高危…...

上海交大陈海波教授、夏虞斌教授领衔巨作上市:《操作系统:原理与实现》

❤️作者主页&#xff1a;小虚竹 ❤️作者简介&#xff1a;大家好,我是小虚竹。2022年度博客之星评选TOP 10&#x1f3c6;&#xff0c;Java领域优质创作者&#x1f3c6;&#xff0c;CSDN博客专家&#x1f3c6;&#xff0c;华为云享专家&#x1f3c6;&#xff0c;掘金年度人气作…...

dpi数据接入shell脚

原文&#xff1a;dpi数据接入shell脚本_weixin_34416754的博客-CSDN博客 ##############从ftp服务器拿数据文件 #!/bin/bash #获取感知优良率DPI数据 #DCN服务器信息 uSichuan pS988188# ip137.192.5.53 #获取日期&#xff0c;根据日期抓取文件 Tdate -d "3 days ago&…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值&#xff0c;最大值左侧的数值严格单调递增&#xff0c;最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值&#xff0c;最小值左侧的数值严格单调递减&#xff0c;最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...