mirror of https://github.com/zlatinb/muwire
more efficient directory traversal
parent
cbf66b620e
commit
49787fb4dc
|
@ -1,5 +1,8 @@
|
||||||
package com.muwire.core.files
|
package com.muwire.core.files
|
||||||
|
|
||||||
|
import java.nio.file.DirectoryStream
|
||||||
|
import java.nio.file.Files
|
||||||
|
import java.nio.file.Path
|
||||||
import java.util.stream.Collectors
|
import java.util.stream.Collectors
|
||||||
import java.util.stream.Stream
|
import java.util.stream.Stream
|
||||||
|
|
||||||
|
@ -263,15 +266,18 @@ class FileManager {
|
||||||
saveNegativeTree()
|
saveNegativeTree()
|
||||||
if (!e.deleted) {
|
if (!e.deleted) {
|
||||||
List<SharedFile> unsharedFiles = new ArrayList<>()
|
List<SharedFile> unsharedFiles = new ArrayList<>()
|
||||||
e.directory.listFiles().each {
|
try(DirectoryStream<Path> directoryStream = Files.newDirectoryStream(e.directory.toPath())) {
|
||||||
if (it.isDirectory())
|
for (Path p : directoryStream) {
|
||||||
eventBus.publish(new DirectoryUnsharedEvent(directory : it))
|
File file = p.toFile()
|
||||||
|
if (file.isDirectory())
|
||||||
|
eventBus.publish(new DirectoryUnsharedEvent(directory : file))
|
||||||
else {
|
else {
|
||||||
SharedFile sf = fileToSharedFile.get(it)
|
SharedFile sf = fileToSharedFile.get(file)
|
||||||
if (sf != null)
|
if (sf != null)
|
||||||
unsharedFiles.add(sf)
|
unsharedFiles.add(sf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
eventBus.publish(new FileUnsharedEvent(unsharedFiles : unsharedFiles.toArray(new SharedFile[0])))
|
eventBus.publish(new FileUnsharedEvent(unsharedFiles : unsharedFiles.toArray(new SharedFile[0])))
|
||||||
} else {
|
} else {
|
||||||
def cb = new DirDeletionCallback()
|
def cb = new DirDeletionCallback()
|
||||||
|
|
Loading…
Reference in New Issue