我正在尝试制作一个非常简单的java程序,该程序可以在几组文件之间切换。为此,我试图删除先前存在的文件,然后从我正在谈论的“预设”之一中复制这些文件。但是,由于我不想触摸同一位置上的许多其他文件,因此我只想删除具有特定前缀/名称的文件。
要阐明的示例:
其中一个预置文件夹具有:enbcache(带有子文件夹和项目的文件夹),enbseries(带有子文件夹和项目的文件夹)和enblocal.ini。
目标文件夹具有相同的文件,还有许多其他文件:enbcache(带有子文件夹和项目的文件夹),enbseries(带有子文件夹和项目的文件夹),enblocal.ini,data,d3d11.dll,tbb.dll,其他文件夹。等。
程序应删除名称中带有“ enb”的所有旧文件和文件夹,并保留其他所有内容。然后,“预设文件夹一”中的文件将被复制到目标文件夹中。
我发现了许多使用java删除文件和文件夹的方法,以及删除特定文件的方法。但是,我遇到的问题是尝试合并这些内容时。 由于文件夹中的项目需要删除,但没有“ enb”前缀,因此该程序无法删除该文件夹,因为它仍然包含剩余文件。
我已经尝试使用NIO Java 7和8以及仅使用File的更简单方法,但是一直到无法删除其中包含项目的“ enb”文件夹的同一点。 我将在此处提供某人提供的代码:
Delete Files with same Prefix String using Java
我正在尝试使用的。
与“ enb”前缀一起使用时,我遇到了先前描述的问题:它无法删除所有文件夹,因为其中一些文件夹中没有“ enb”前缀。
public static void deleteFilesForPathByPrefix(final Path path, final String prefix) {
try (DirectoryStream<Path> newDirectoryStream = Files.newDirectoryStream(path, prefix + "*")) {
for (final Path newDirectoryStreamItem : newDirectoryStream) {
Files.delete(newDirectoryStreamItem);
}
} catch (final Exception e) {
e.printStackTrace();
}
}