Unity实现对电脑文件夹和文件的重命名方法

👉一、前言

通常项目中有导出文件或文件夹功能需求时,类似Unity导出包或打包exe一样,都要让用户选择路径,并输入指定名称,将导出的文件或文件夹命名为用户输入的名称。刚开始我想到的方法是使用System.IO命名空间下的File类的Move方法或FileInfo类的MoveTo方法来实现,但实践发现并不通用,所以只能另寻他法。终于让我找到了一种在Unity中通用性比较好的重命名文件夹和文件的方法,可直接对指定路径下的文件夹或文件重命名。

👉二、准备工作

1、推荐使用搜索工具Everything

在这里插入图片描述
在准备工作开始之前,推荐大家使用Everything搜索工具,可以帮助我们快速找到你想要的文件或文件夹。Everthing中文版是功能强大的搜索工具,可以搜索出你电脑中的各种文件,无论它隐藏在哪一个角落都可以找得到,支持32位、64位系统。

2、导入Microsoft.VisualBasic.Dll和System.Deployment.Dll文件

这时搜索工具Everything就派上用途了,因为我提到的这两个dll库,虽然是Unity安装路径下也有,但是有的没有实现文件夹或文件重命名的方法;有的因为实现平台.NET有点高不适用。因为我当前项目的脚本运行平台是.net3.5,所以我只能从电脑上查找.net3.5平台下的这两个库Microsoft.VisualBasic.Dll和System.Deployment.Dll,打开搜索工具,直接搜这两个库,你可能会看到一大堆结果,但你要选择符合你当前工程的.net平台的dll将其导入,否则导入用不了或者报错。(如果找不到可以留言或私信我发给你)
在这里插入图片描述

👉三、搭建demo场景实现用户选择文件夹或文件重命名的方法

1、简单搭建demo场景

在这里插入图片描述
新建两个按钮组件,演示将用户选择的文件夹和文件重命名为指定名称。

2、写个脚本实现对电脑文件夹或文件重命名的逻辑
using UnityEngine;
using UnityEngine.UI;
using Microsoft.VisualBasic.Devices;
using Crosstales.FB;
using System.IO;
public class Rename : MonoBehaviour
{
    public Button renameFolder;
    public Button renameFile;
    

    void Start()
    {
        renameFolder.onClick.AddListener(RenameFolderClick);
        renameFile.onClick.AddListener(RenameFileClick);
    }
    /// <summary>
    /// 重命名文件夹
    /// </summary>
    private void RenameFolderClick()
    {
        string folderPath = FileBrowser.OpenSingleFolder("请选择一个文件夹", "");//打开资源浏览器用用户选择文件夹
        if (!string.IsNullOrEmpty(folderPath))
        {
            if (Directory.Exists(folderPath))//判读文件夹是否存在
            {
                Computer computer = new Computer();//声明一个computer对象
                computer.FileSystem.RenameDirectory(folderPath, "文档");//将选择的文件夹重命名为“文档”
            }
        }
    }
    /// <summary>
    /// 重命名文件
    /// </summary>
    private void RenameFileClick()
    {
        string filePath = FileBrowser.OpenSingleFile("请选择一个文件","","docx");//打开资源浏览器用用户选择一个文档
        if (!string.IsNullOrEmpty(filePath))
        {
            if (File.Exists(filePath))//判读文件是否存在
            {
                Computer computer = new Computer();//声明一个computer对象
                computer.FileSystem.RenameFile(filePath, "unity教程.docx");//将选择的文件重命名为“unity教程”注意要加文件后缀名
            }
        }
    }
}

注意事项:Computer 类在Microsoft.VisualBasic.Devices命名空间下,使用前需先引用此命名空间。RenameDirectory()方法需要传入文件夹的路径作为第一参数,第二个参数是重命名的文件夹新名称;RenameFile()方法需要传入文件的路径作为第一参数,第二个参数是重命名的文件新名称,需要加上文件后缀名!!!

3、重命名功能演示
  • 文件夹重命名请添加图片描述
    可以看到已经成功将我选择的Assets/Data/folder文件夹重命名为文档:
    在这里插入图片描述

  • 文件重命名
    请添加图片描述
    可以看到已经成功将我选择的Assets/Data/文档/新建 DOCX 文档.docx文件重命名为unity教程.docx:
    在这里插入图片描述

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周周的Unity小屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值