У меня есть этот фрагмент кода:
public static void delete(File f) throws IOException
{
if (f.isDirectory())
{
for (File c : f.listFiles())
{
delete(c);
}
}
else if (!f.delete())
{
throw new FileNotFoundException("Failed to delete file: " + f);
}
}
public static void traverseDelete(File directory) throws FileNotFoundException, InterruptedException
{
//Get all files in directory
File[] files = directory.listFiles();
for (File file : files)
{
if (file.getName().equalsIgnoreCase("word"))
{
boolean containsMedia = false;
File[] filesInWordFolder = file.listFiles();
for ( File file2 : filesInWordFolder )
{
if ( file2.getName().contains("media"))
{
containsMedia = true;
break;
}
}
if (containsMedia == false)
{
try
{
delete(file.getParentFile());
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
else if (file.isDirectory())
{
traverseDelete(file);
}
}
}
Извините за отсутствие комментариев, но я думаю, это довольно очевидно.По сути, код должен проходить через набор файлов в данном каталоге, если он встречает каталог с именем «word», то он должен перечислить содержимое слова, а затем, если каталог с именем «media» НЕ выполняет.существуют, рекурсивно удаляют все в родительском каталоге «word».
Моя главная проблема связана с этим условием:
if(!filesInWordFolder.toString().contains("media"))
Это правильный способ сказать, что файлы в этомМассив не содержит экземпляр "изображения", иди дальше и удалишь?