【问题标题】:Is it possible to write to a hidden file in Java?是否可以在 Java 中写入隐藏文件?
【发布时间】:2012-11-28 16:10:49
【问题描述】:

我已经弄清楚如何在 Java 中创建一个隐藏文件,现在我需要向该文件写入大量数据。我不断收到以下异常:SEVERE: java.io.FileNotFoundException: <filepath>\tmp (Access is denied)

这是我尝试并获得解决方案的两种方法,但两种方法都有相同的异常。注意:toOverwrite 在这两种情况下都是隐藏文件。

File fileByteText = new File("./testFile.txt");
File toOverwrite = new File("./tmp");
//Assume toOverwrite is hidden

boolean toReturn = true;
    try {
        byte[] fileByteText = FileUtils.readFileToByteArray(toGetTextFrom);
                    FileUtils.writeByteArrayToFile(toOverwrite, fileByteText,    false);
                    toReturn = false;
                } catch (IOException e) {
                    bam.severe(e);
                    toReturn = true;
                }

使用相同的文件对象接近两个:

try {
                String fileText = FileUtils.readFileToString(toGetTextFrom);
                FileWriter fw = new FileWriter(toOverwrite.getAbsoluteFile());
                BufferedWriter bw = new BufferedWriter(fw);
                bw.write(fileText);
                bw.close();
                toReturn = false;
            } catch (IOException e1) {
                bam.severe(e1);
                toReturn = true;
            }

【问题讨论】:

标签: java file io hidden-files


【解决方案1】:

当您尝试写入目录类型的文件时,您可能会遇到异常。 检查 toOverWrite.isFile() 返回什么方法;

如果为假,则不能写。

【讨论】:

  • 什么?大声笑我假设您说我无法写入目录。我不是在写目录,它是一个文件。我为文件名添加了扩展名,它仍然不起作用。
  • 所以isFile()返回true?,然后检查file.canWrite()返回什么
  • 是的,isFile() 返回 true,canWrite() 也返回 true。
  • 然后将 jdk 源附加到您的项目并调试到其中,然后您会看到在哪里以及希望引发异常的原因。
【解决方案2】:

Unix 没有魔法。只需在您的文件名前添加.。在 Windows 下,这不能用 Java 实现。您需要本机命令。愿这适用于 NIO2。

【讨论】:

  • 是的,我知道如何在 unix 和 windows 中创建隐藏文件。一旦文件被隐藏,我更关心写入文件。
猜你喜欢
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多