文件重命名不起作用

2024-01-13

我正在尝试为选定的文件名添加扩展名JFileChooser虽然我无法让它工作。

这是代码:

final JFileChooser fc = new JFileChooser();
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        int returnVal = fc.showSaveDialog(null);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File f = fc.getSelectedFile();
            String name =f.getAbsoluteFile()+".txt";
            f.renameTo(new File(name));
            FileWriter fstream;
            try {
                fstream = new FileWriter(f);
                BufferedWriter out = new BufferedWriter(fstream);
                out.write("test one");
                out.close();
            } catch (IOException ex) {
                Logger.getLogger(AppCore.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

我不明白为什么这不起作用。我也尝试使用 getPath() 和 getCanonicalPath() 但结果是相同的。该文件在选定的目录中创建,但没有“.txt”扩展名。


在我看来,你想做的就是改变name所选文件的名称,而不是重命名文件系统上的文件。在这种情况下,你不使用File.renameTo。你只需改变File。像下面这样的东西应该有效:

        File f = fc.getSelectedFile();
        String name = f.getAbsoluteFile()+".txt";
        f = new File(name);

File.renameTo http://docs.oracle.com/javase/6/docs/api/java/io/File.html#renameTo%28java.io.File%29尝试重命名文件系统上的文件。例如:

File oldFile = new File("test1.txt");
File newFile = new File("test2.txt");
boolean success = oldFile.renameTo(newFile); // renames test1.txt to test2.txt

在这三行之后,successtrue如果文件test1.txt可以重命名为test2.txt, and false如果重命名不成功(例如test1.txt不存在、在另一个进程中打开、权限被拒绝等)

我会冒险猜测您尝试的重命名失败,因为您正在尝试重命名目录(您正在使用JFileChooserDIRECTORIES_ONLY选项)。如果您的程序使用此目录中的文件,或者在其中打开命令提示符,它们将反对重命名此目录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

文件重命名不起作用 的相关文章

随机推荐

  • 有没有好的 Perl 自动化测试套件? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐一些好的 Perl 自动化测试套件框架吗 这实际上取决于您想要做什么 但这里有一些背景知识
  • 如何在 Android 中创建两个视图,每个视图使用 50% 的高度,除非其中一个较小?

    想象一个完整的 Android 设备屏幕 我希望它分为两个部分 上半部分包含文本 该文本可能大于可用空间 或不大于可用空间 因此文本将滚动 即 ScrollView 内的 TextView 下半部分包含一个 MapView 控件 具体看一些
  • joda - 解析 RSS 项目中 pubDate 的时区

    我正在使用 Joda 解析 RSS 项目中的 pubDate 日期必须采用 RFC 822 格式 http feed2 w3 org docs error InvalidRFC2822Date html http feed2 w3 org
  • JOGL白色质感?

    我正在尝试加载 Earth png 并将其放置在三角形上 图像尺寸为 256x256 我已经按照在线教程进行了几个小时的研究 但三角形仍然保持白色 任何人都可以指出我正确的方向吗 import java awt Frame import j
  • 如何在 C# 中生成 HMAC 签名

    我正在尝试与第 3 方 API 集成 该 API 需要对我的请求正文和一些变量进行加密 并使用 HMAC 签名进行授权 他们为我提供了示例 JavaScript 代码 function generateHMACSignature partn
  • 一般错误:1364 字段“user_id”没有默认值[重复]

    这个问题在这里已经有答案了 我试图将 user id 分配给当前用户 但它给了我这个错误 SQLSTATE HY000 General error 1364 Field user id doesn t have a default valu
  • Oracle RAW id 列和 JDBC

    我正在尝试开发一个调用 Oracle 11g XE 数据库的简单 Java servlet 我提供的数据库对所有表上的 ID 使用 RAW 列类型 最初 我尝试从 JDBC 获取数据 并对返回的 VARBINARY 字节数组进行 base6
  • 在 Firebase Firestore 中执行简单的选择查询

    如何在 Firebase Firestore 中执行简单搜索以检查集合中是否存在记录 我在文档中看到过这段代码 但它并不完整 Create a reference to the cities collection var citiesRef
  • 等于/等于和 == 运算符之间的区别?

    有什么区别a b and a Equals b 假设类型a and b是参考类型 在 Java 中 总是会比较identity 即两个值是否是对同一对象的引用 这也称为引用相等 Java 没有任何用户定义的运算符重载 在 C 中 这取决于情
  • 标准是否指定哪些标头包含其他标头?

    我正在参加一个在线编码竞赛 我的想法是找到一个名称比
  • 导入具有可变标头的 Excel 文件

    我有 SSIS 包 它将把 excel 文件加载到数据库中 我创建了 Excel Source 任务来将 Excel 列名称映射到数据库表列名称 并且其工作正常 在极少数情况下 我们收到带有一些空格的 Excel 文件列名称 例如 列名称是
  • pszBuffer 或类似内容中的“psz”代表什么?

    我知道这有点偏离主题 但我相信无论如何我都能在这里得到答案 什么是 psz 代表在pszBuffer或者C C 系统库中的类似变量 我看到很多变量都带有 前缀 psz 它看起来像一个图案 Thanks This is 匈牙利表示法 http
  • Android xml 形状声明中的滑稽错误

    我正在创建一个形状用作按钮背景 我正在制作一条按钮 左边的按钮在左边有圆角 右边的最后一个在右边有圆角 这非常简单 API 文档向您展示了如何做到这一点 然而 当我使用android topLeftRadius and android bo
  • 请求 JSF 页面时无限 setStatus() 循环

    您好 我已将我的配置和库升级到 hibernate 4 spring 3 1 1 richfaces 4 我在 tomcat 7 上运行 但是当我尝试打开索引页时 服务器运行一个循环 当我尝试在 ViewHandlerResponseWra
  • 如何更改 Huggingface 变压器默认缓存目录

    默认缓存目录磁盘容量不足 我需要更改默认缓存目录的配置 您可以在每次加载模型时指定缓存目录 from pretrained https huggingface co transformers main classes model html
  • Jetpack Compose Text 组件中的等宽数字

    我在 Jetpack Compose 应用程序中使用自定义字体 并且希望将特定文本组件中的数字等宽 对于标准 Android TextView 可以使用fontFeatureSetting tnum 属性 https stackoverfl
  • 在 if 条件中声明变量有什么问题?

    也许我已经生疏了 最近一直在用Python编写 为什么这不能编译 if int i f 0 没有 周围的int i f 我得到另一个更合理的错误i不是布尔值 但这就是为什么我首先想要括号 我的猜测是 使用括号将其放入表达式中 并且表达式中不
  • gvim 的类似尾巴的功能

    我想使用 gvim 来查看不断更新的日志文件 这样我总是可以看到最后更新的行 就像 unix 中的 tail 命令一样 是否可以 打开日志文件和 setlocal autoread 有一个插件 尾束 http www vim org scr
  • 如何使用 OkHttp 启用证书固定

    如何使用 OkHttp 为我的 Android Java 应用程序启用证书固定 The OkHttp 文档 http square github io okhttp 3 x okhttp okhttp3 CertificatePinner
  • 文件重命名不起作用

    我正在尝试为选定的文件名添加扩展名JFileChooser虽然我无法让它工作 这是代码 final JFileChooser fc new JFileChooser fc setFileSelectionMode JFileChooser