- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
File dir = new File(getFilesDir(), "dir1");
dir.renameTo(new File(getFilesDir(), "dir2");
Log.d("Number of files:", dir.listFiles().length);
假设/dir1/包含 5 个文件。这段代码将打印 0。但是,如果我将代码更改为`
File dir = new File(getFilesDir(), "dir1");
dir.renameTo(new File(getFilesDir(), "dir2");
dir = new File(getFilesDir(), "dir2");
Log.d("Number of files:", dir.listFiles().length);
它将打印正确的值:5。这有什么原因吗?我使用 renameTo 后,看起来 dir 没有链接到同一目录。
最佳答案
原因是在您的第一个代码中 dir
仍然指向目录 dir1
而不是 dir2
。
但是,在下面的代码中:
File dir = new File(getFilesDir(), "dir1");
dir.renameTo(new File(getFilesDir(), "dir2");
dir = new File(getFilesDir(), "dir2");
Log.d("Number of files:", dir.listFiles().length);
dir
现在指向 dir2
,因此您获得了正确的值。
我建议您避免使用 Java 的 File.renameTo(),因为它是有问题的,尤其是在 Windows 上。正如 API 文档所述:
Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.
您可以使用 apache.commons.io 库,其中包括 FileUtils.moveFile() 或 JDK 7 中的 Files.move() 方法。
关于java - 在文件上使用 renameTo 更改内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45755728/
有很多关于 RenameTo 的帖子,但不幸的是,这些帖子似乎都不是我的问题或回答它:'( 我的问题是:我给我的程序一个文件,然后它应该加密它,计算加密文件的哈希值,并用这个哈希值重命名这个加密文件。
我需要通过将文件名中的 - 替换为 _ 来重命名文件。 假设文件名是ab-9.xml,它应该是ab_9.xml。 renameTo() 对我不起作用。还有其他方法可以做到这一点吗?这是我的代码: Fi
我尝试在 Java 中使用 renameTo 方法,但它只返回 false 并且不会移动文件。 我是不是少了一步?有没有办法找出为什么不移动文件? delete 方法也不执行任何操作。 这是我的代码,
Java 下面的代码是读取所有文件,并将数据发送到另一个方法(setOutput()),然后调用一个方法将最后读取的文件重命名到另一个目录,然后删除原始文件。在调用 smdrCleanup() 方法之
你能帮帮我吗? renameTo() 留下空的旧文件。所以我在文件系统中看到 2 个具有新名称和旧名称的文件。旧文件的大小为 0。如果我在重命名后删除旧文件,它会说该文件在文件系统中不存在。 目录的绝
我正在尝试通过 FTP 上传文件,但在上传之前必须将其重命名为 2 个 editText 的输入。为此,我使用以下代码: public FTPClient client = new FTPClient
我在媒体模块中运行了以下 Java 代码: File file = new File("/my/path/"+String.format("%02d", date)+"/"+streamAliasRe
我正在尝试重命名我的应用程序中的图像文件。但是代码不起作用。 基本上,我希望用户单击“重命名”按钮,弹出一个带有 editText 的警告对话框,用户输入图像的新名称,然后选择“重命名”选项。这应该重
我知道这个问题在这里可能已经被回答了一百万次,但我所看到的一切都没有帮助我。这是我的代码: for(File g: f.listFiles()){ for(File h : g.listFil
只是尝试使用 Java 重命名文件夹树的根目录。 使用 File.renameTo() 仅在 Windows 中有效,因为该文件夹根本没有任何内容。我似乎无法确定这是否是预期的行为。文档中似乎没有提到
File dir = new File(getFilesDir(), "dir1"); dir.renameTo(new File(getFilesDir(), "dir2"); Log.d("Num
我目前有一个文件监视器,它读取 XML 文件并根据内容更新数据库表。读取文件时,会根据特定模式对其进行验证,以确保内容正确。 验证的结果会影响要移动的文件的目的地。 如果架构成功,则将文件移动到已处理
import java.io.File; import org.apache.commons.io.FilenameUtils; public class Tester { public static
我有重命名文件然后立即尝试打开它的代码。 在 Windows XP 上,这有时(但很少)会抛出 FileNotFoundException。 renameTo 的返回值为真。 这是一个已知问题吗?也许
我有一个图片库应用程序,我尝试使用 renameTo() 方法重命名图像,但它无法更改文件名并返回 false。我读了很多关于重命名文件的问题,所有这些问题都建议只使用一种重命名文件的方法 - ren
这是我的代码,它非常简单: def dir = "C:\\Test" def folder = new File(dir) def files folder.setReadable(true) fol
我有 eclipse 插件 jface 应用程序。线程通过 BufferedWriter 写入文件。写入完成后,我关闭缓冲区,然后尝试重命名文件。 但有时文件没有重命名! 我尝试在几次重试之间添加一些
忽略我上一篇文章,我找到了问题的根源。我正在使用 a.renameTo(b) 当 b 不存在时。它不存在的原因是因为有一个符号链接(symbolic link)所以如果 b 是 /usr/name/f
我使用以下代码在 linux 上编辑文件 OIMV2Migration.sh。 String oldFileName = "OIMV2Migration.sh";//file to be ed
我希望能够重命名文件夹列表以删除不需要的字符(例如,点和双空格必须变成单个空格)。 单击 Gui 中的按钮后,您会看到一个消息框,其中显示了格式正确的名称,这表明格式正确且函数已被调用。当我查看我创建
我是一名优秀的程序员,十分优秀!