bool File::copyDirectoryTo (const File& newDirectory) const { if (isDirectory() && newDirectory.createDirectory()) { for (auto& f : findChildFiles (File::findFiles, false)) if (! f.copyFileTo (newDirectory.getChildFile (f.getFileName()))) return false; for (auto& f : findChildFiles (File::findDirectories, false)) if (! f.copyDirectoryTo (newDirectory.getChildFile (f.getFileName()))) return false; return true; } return false; }
bool File::deleteRecursively() const { bool worked = true; if (isDirectory()) for (auto& f : findChildFiles (File::findFilesAndDirectories, false)) worked = f.deleteRecursively() && worked; return deleteFile() && worked; }
//============================================================================== bool File::setReadOnly (const bool shouldBeReadOnly, const bool applyRecursively) const { bool worked = true; if (applyRecursively && isDirectory()) for (auto& f : findChildFiles (File::findFilesAndDirectories, false)) worked = f.setReadOnly (shouldBeReadOnly, true) && worked; return setFileReadOnlyInternal (shouldBeReadOnly) && worked; }
bool File::copyDirectoryTo (const File& newDirectory) const { if (isDirectory() && newDirectory.createDirectory()) { Array<File> subFiles; findChildFiles (subFiles, File::findFiles, false); for (int i = 0; i < subFiles.size(); ++i) if (! subFiles.getReference(i).copyFileTo (newDirectory.getChildFile (subFiles.getReference(i).getFileName()))) return false; subFiles.clear(); findChildFiles (subFiles, File::findDirectories, false); for (int i = 0; i < subFiles.size(); ++i) if (! subFiles.getReference(i).copyDirectoryTo (newDirectory.getChildFile (subFiles.getReference(i).getFileName()))) return false; return true; } return false; }
bool File::deleteRecursively() const { bool worked = true; if (isDirectory()) { Array<File> subFiles; findChildFiles (subFiles, File::findFilesAndDirectories, false); for (int i = subFiles.size(); --i >= 0;) worked = subFiles.getReference(i).deleteRecursively() && worked; } return deleteFile() && worked; }
//============================================================================== bool File::setReadOnly (const bool shouldBeReadOnly, const bool applyRecursively) const { bool worked = true; if (applyRecursively && isDirectory()) { Array <File> subFiles; findChildFiles (subFiles, File::findFilesAndDirectories, false); for (int i = subFiles.size(); --i >= 0;) worked = subFiles.getReference(i).setReadOnly (shouldBeReadOnly, true) && worked; } return setFileReadOnlyInternal (shouldBeReadOnly) && worked; }