java文件处理

news2024/10/5 16:31:50

重命名文件-旧file.renameTo(新file)

import java.io.File;
/**
     * 文件重命名-ffmpeg合并文件时不允许覆盖原文件,所以合并时,修改源文件名,合并后文件名为源文件名
     *
     * @param fileName
     * @return
     */
    public String RenameFileExample(String fileName) {
        // 获取原始文件的父路径和文件名(不带扩展名)
        File originalFile = new File(fileName);
        String parentPath = originalFile.getParent();
        // 分割文件名和扩展名
        String fileNameWithoutExt = originalFile.getName().split("\\.")[0];
        // 获取文件扩展名
        String fileExtension = originalFile.getName().substring(originalFile.getName().lastIndexOf("."));
        // 新文件名,添加"merge1_"前缀
        String newFileName = "merge_" + fileNameWithoutExt + fileExtension;
        // 完整的新文件路径
        String newFilePath = parentPath + File.separator + newFileName;


        File newFile = new File(newFilePath);

        // 尝试重命名文件
        if (originalFile.renameTo(newFile)) {
            System.out.println("文件重命名成功,新文件路径: " + newFilePath);

        } else {
            System.out.println("文件重命名失败,请检查新文件名是否已存在或是否有权限操作");
        }
        return newFilePath;

    }

获取文件父路径

例子“E/Monitor/video_20240617_11.mp4”

File originalFile = new File(fileName);

//获取父路径-- --结果“E/Monitor”
String parentPath = originalFile.getParent();

获取文件名

例子“E/Monitor/video_20240617_11.mp4”

File originalFile = new File(fileName);

//获取文件名----结果“video_20240617_11”

 String fileNameWithoutExt = originalFile.getName().split("\\.")[0];

获取文件扩展名

例子“E/Monitor/video_20240617_11.mp4”

File originalFile = new File(fileName);

//获取文件扩展名----结果“.mp4”

String fileExtension = originalFile.getName().substring(originalFile.getName().lastIndexOf("."));

创建文件- Files.createFile(filePath);

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;

public class FileCreator {
    public static void main(String[] args) {
        String directoryPath = "E:/Monitor/monitor1/";
        String fileName = "test.mp4";
        Path filePath = Paths.get(directoryPath, fileName);
        try {
            // 检查目录是否存在,如果不存在则创建
            Path dirPath = Paths.get(directoryPath);
            if (!Files.exists(dirPath)) {
                Files.createDirectories(dirPath);
                System.out.println("目录创建成功: " + directoryPath);
            }
            // 创建文件
            if (Files.notExists(filePath)) {
                Files.createFile(filePath);
                System.out.println("文件创建成功: " + filePath);
            } else {
                System.out.println("文件已存在: " + filePath);
            }
        } catch (IOException e) {
            System.err.println("创建文件或目录时发生错误: " + e.getMessage());
        }
    }
}

文件是否存在-file.exists()

删除文件-file.delete()

import java.io.File;
    /**
     * 删除文件
     *
     * @param filePath
     */
    public void deleteFileExample(String filePath) {
        // 文件路径
        File file = new File(filePath);

        // 检查文件是否存在
        if (file.exists()) {
            // 尝试删除文件
            if (file.delete()) {
                System.out.println(filePath + " 文件已被成功删除!");
            } else {
                System.out.println("删除文件 " + filePath + " 失败,可能是文件正在被使用或没有足够的权限。");
            }
        } else {
            System.out.println("文件 " + filePath + " 不存在,无需删除。");
        }
    }

目录是否存在-!Files.exists(path)

新建目录- Files.createDirectories(path);

检查目录是否存在,如果不存在则新建~

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class DirectoryHandler {

    public static void ensureDirectoryExists(String outputFolder) {
        Path path = Paths.get(outputFolder);

        // 检查目录是否存在
        if (!Files.exists(path)) {
            try {
                // 如果不存在,则创建目录,包括任何必须的父目录
                Files.createDirectories(path);
                System.out.println("目录创建成功: " + outputFolder);
            } catch (Exception e) {
                System.err.println("创建目录时发生错误: " + e.getMessage());
            }
        } else {
            System.out.println("目录已存在: " + outputFolder);
        }
    }

    public static void main(String[] args) {
        String outputFolder = "E:/Monitor/monitor1/";
        ensureDirectoryExists(outputFolder);
    }
}

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

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

相关文章

Power Apps

目录 一、引言1、Power Apps2、应用场景3、Power Apps的优势与前景4、补充 二、数据源介绍1、SharePoint2、Excel3、Dataverse4、SQL5、补充(1)OneDrive 三、Power Apps应用类型1、画布应用2、模型驱动应用3、网站 Power Pages 四、Power Automate五、Po…

【Nginx】Nginx安装及简单使用

https://www.bilibili.com/video/BV1F5411J7vK https://www.kuangstudy.com/bbs/1353634800149213186 https://stonecoding.net/system/nginx/nginx.html https://blog.csdn.net/qq_40492693/article/details/124453090 Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器。其特…

黄历工具网/万年历/财神方位/日历/佛历/道历/24节气/PHP网站源码

黄历工具网/万年历/财神方位/日历/佛历/道历/24节气/PHP网站源码 演示地址: https://hl.caohongji.com/ 手机端地址: https://mhl.caohongji.com/ 客服: kkmp326 源码说明: 1、系统内的黄历宜忌、农历、日历、佛历、道…

Linux命令重温

目录 Linux安装基础命令lsllcdpwdmkdirrmdirtouchcpmvrmvi/vim>和>>catheadlessmoretailechoclearwhich 进阶命令其他命令 Linux安装 通过vmware设置模拟硬件环境安装centos系统进行相应的网络配置安装xshell bin 存放二进制可执行文件(ls,cat,mkdir等) boot 存放用…

【计划】软件项目总体计划书(项目必备资料合集原件)

项目开发计划包括项目描述、项目组织、成本预算、人力资源估算、设备资源计划、沟通计划、采购计划、风险计划、项目过程定义及项目的进度安排和里程碑、质量计划、数据管理计划、度量和分析计划、监控计划和培训计划等。 软件全套精华资料包清单部分文件列表: 工作…

力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列)

力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列) 文章目录 力扣爆刷第153天之TOP100五连刷26-30(接雨水、环形链表、最长上升子序列)一、300. 最长递增子序列二、415. 字符串相加三、143. 重排链表四、42.…

【C++庖丁解牛】函数栈帧的创建与销毁

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1. 寄存器2. ebp和esp是如…

【前端】[vue3] [uni-app] 组件样式击穿:deep

我是在开发uni-app时测试的思路,大家可以借鉴一下。 我这边测试的是uni组件,但是我觉得即便你用element-plus之类的,样式击穿的思路都相同。 我自定义了一个全局样式scss文件,并引入到了项目中。(如图) 利用vue3 中的 deep 方式…

2024届应届生突破1179万人,如何瞄准AI行业,获得高薪职业前景

应届生如何开启AI行业的职业生涯? ©作者|Zhongmei 来源|神州问学 引言 人工智能和数据科学几乎可以在任何产生数据的场合中发挥作用,因为它们开辟了一种全新的范式——让机器能够从数据中提炼出知识。自2011年人工智能走出实验室的门槛&#xff0c…

Sapphire开发日志 (十一) 登陆注册功能

任务介绍 本周实现登陆注册功能。 由于本项目主要关注在数据集的相关操作,所以对于用户的登录注册验证没有必要采取完整的一套手机号(邮箱)验证机制,简单的实现一个注册和登录功能即可。 背景效果 首先展示效果 整体背景页面和…

【事件总线】EventBus

文章目录 概述如何使用如何发布消息如何进行消息监听 来源 概述 事件总线是对发布-订阅模式(观察者)的一种实现,是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。 …

喜讯:ISO年度审核通过!

在数字化时代,质量是我们不变的追求。近日,矩阵起源迎来了一个值得庆祝的时刻——三项ISO体系年度考核顺利通过!分别为:ISO9001 质量管理体系标准认证、ISO20000信息技术服务管理体系认证及ISO27001 信息安全管理体系认证。 ISO标…

摘苹果-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第88讲。 摘苹果&#xff0…

品牌出海!独立站不仅是方向,而是成为跨境电商主流了

近些年,随着跨境电商3.0品牌出海和本土化时代的到来,独立站成为品牌出海的必备渠道和关键胜负手! 搭建独立站作为品牌本土化的最好展示载体,独立的品牌包装与产品页面,能够更好讲述品牌故事,因而得以快速发…

fvcore库的一些功能和使用

目录 一、安装fvcore库 二、使用 fvcore是Facebook开源的一个轻量级的核心库,它提供了各种计算机视觉框架中常见且基本的功能。其中就包括了统计模型的参数以及FLOPs等。 项目地址:fvcore 一、安装fvcore库 pip install fvcore 二、使用 1、计算模…

Debian12中搭建TiddlyWiki服务并进行配置

一、Node.js 环境安装 apt update & apt install nodejs npm ## 查看版本 node -v npm -v二、安装Tiddlywiki npm install -g tiddlywiki## 查看版本号 tiddlywiki --version 三、配置并运行 tiddlywiki ## 在/home 目录自动创建Testwiki文件夹,作为wiki的存…

项目实践---Windows11中安装Zookeeper/Hadoop/Hive的部分问题解决

一.Hadoop与Hive兼容版本选择 正常来说,Hadoop与Hive版本不兼容会出现很多问题导致hive安装失败,可以先确定HIve的版本,比如:要用Hive3.1.2版本,该如何确定使用Hadoop的版本呢,需要我们在hive源码中找到对…

自学鸿蒙HarmonyOS的ArkTS语言<四>@Builder自定义构建函数

作用:可以提取重复的ui, 在buil()中调用 【官方文档传送门】 一、用在自定义组件内 自定义组件内可以有一个或多个Builder只能在所属组件的builder方法和其他Builder中调用,组件外不能调Builder中的this指当前所属组件,组件的状态变量可以在…

LeetCode 热题100 --双指针

双指针 b站UP主蜜糖:由于数据特征的有序性(大小或者正负),所以可以证明当前节点一定是优于过往节点,从而可以通过数据的维度数量的指针,逐步的迭代收敛最终找到最优解。 283.移动零 相关标签 :…

计算机网络 —— 应用层(电子邮件)

计算机网络 —— 应用层(电子邮件) 电子邮件发送电子邮件的过程SMTP特性工作流程 电子邮件格式MIME关键组件工作方式 POP/IMAPPOP(邮局协议)IMAP(因特网邮件访问协议) 基于万维网的电子邮箱特点优势常见的基…