gpt4 book ai didi

java - 将文件移动到特定文件夹

转载 作者:行者123 更新时间:2023-12-02 04:31:53 25 4
gpt4 key购买 nike

我正在尝试将文件移动到指定文件夹,但不能。这是代码:

  public static void moveToRightDirectory(File song, String album) throws IOException {
if(album.endsWith(" ")) {
album = album.substring(0, album.length() - 1);
}
String pathDirectory = selectedDir + "\\" + album;
File dir = new File(pathDirectory);
System.out.println("dir.exists(): " + dir.exists());
if(dir.exists()) {
Files.move(song.toPath(), dir.toPath(), StandardCopyOption.REPLACE_EXISTING );
//System.out.println(song.renameTo(dir));
}
else {
boolean success = (new File(pathDirectory)).mkdirs();
if(!success) {
System.out.println("Error creating directory.");
}
else {
Files.move(song.toPath(), dir.toPath(), StandardCopyOption.REPLACE_EXISTING );
//System.out.println(song.renameTo(dir));
//FileUtils.moveFile(song, dir);
}
}
}

我知道还有其他关于此问题的消息(我从这些消息中受到启发),但我无法解决,因此我需要您的帮助。

我想将song文件移动到文件夹dir中。为此我尝试了几种方法:

  • Files.move -> 生成以下错误:

    线程“AWT-EventQueue-0”java.nio.file.InvalidPathException 中出现异常:索引 55 处的尾随 char < >:C:\Users...\dir
    在 sun.nio.fs.WindowsPathParser.normalize(来源未知) 在 sun.nio.fs.WindowsPathParser.parse(来源未知) 在 sun.nio.fs.WindowsPathParser.parse(来源未知) 在 sun.nio.fs.WindowsPath.parse(来源未知) 在 sun.nio.fs.WindowsFileSystem.getPath(来源未知) 在 java.io.File.toPath(来源未知) 在 createDir.CreateDirectory.moveToRightDirectory(CreateDirectory.java:73) 在 createDir.CreateDirectory.createDirectory(CreateDirectory.java:40) 在 gui.DirChooser.actionPerformed(DirChooser.java:54) 在 javax.swing.AbstractButton.fireActionPerformed(来源未知) 在 javax.swing.AbstractButton$Handler.actionPerformed(来源未知) 在 javax.swing.DefaultButtonModel.fireActionPerformed(来源未知) 在 javax.swing.DefaultButtonModel.setPressed(来源未知) 在 javax.swing.plaf.basic.BasicButtonListener.mouseReleased(来源未知) 在 java.awt.Component.processMouseEvent(来源未知) 在 javax.swing.JComponent.processMouseEvent(来源未知) 在 java.awt.Component.processEvent(来源未知) 在 java.awt.Container.processEvent(来源未知) 在 java.awt.Component.dispatchEventImpl(来源未知) 在 java.awt.Container.dispatchEventImpl(来源未知) 在 java.awt.Component.dispatchEvent(来源未知) 在 java.awt.LightweightDispatcher.retargetMouseEvent(来源未知) 在 java.awt.LightweightDispatcher.processMouseEvent(来源未知) 在 java.awt.LightweightDispatcher.dispatchEvent(来源未知) 在 java.awt.Container.dispatchEventImpl(来源未知) 在 java.awt.Window.dispatchEventImpl(来源未知) 在 java.awt.Component.dispatchEvent(来源未知) 在 java.awt.EventQueue.dispatchEventImpl(来源未知) 在 java.awt.EventQueue.access$500(来源不明) 在 java.awt.EventQueue$3.run(来源未知) 在 java.awt.EventQueue$3.run(来源未知) 在 java.security.AccessController.doPrivileged( native 方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(来源未知) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(来源未知) 在 java.awt.EventQueue$4.run(来源未知) 在 java.awt.EventQueue$4.run(来源未知) 在 java.security.AccessController.doPrivileged( native 方法) 在 java.security.ProtectionDomain$1.doIntersectionPrivilege(来源未知) 在 java.awt.EventQueue.dispatchEvent(来源未知) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(来源未知) 在 java.awt.EventDispatchThread.pumpEventsForFilter(来源未知) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(来源未知) 在 java.awt.EventDispatchThread.pumpEvents(来源未知) 在 java.awt.EventDispatchThread.pumpEvents(来源未知) 在 java.awt.EventDispatchThread.run(来源未知)

  • song.renameTo(dir) -> 它什么也不做。

  • FileUtils.moveFile(song, dir); -> Eclipse 找不到 FileUtils。我导入了 java.lang.Object.org.apache.commons.io.FileUtils 但错误变为“无法解析导入 java.lang.Object.org。”

我该如何解决?非常感谢。

最佳答案

不是实际问题的答案,而是基于错误消息

java.nio.file.InvalidPathException: Trailing char < > at index 55:

我猜你的代码没有正确删除尾随空格。

尝试

album = album.trim();

而不是

if(album.endsWith(" ")) { 
album = album.substring(0, album.length() - 1);
}

关于java - 将文件移动到特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31349491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com