public void move(String oldPath, String newPath) { bool wasDir = backingProvider.isDirectory(oldPath); backingProvider.move(oldPath, newPath); if (wasDir) { copyCachedResourcesToBackingProvider(ResourceCache.getResourcesInDirectory(oldPath), oldPath, newPath); ResourceCache.forceCloseResourcesInDirectroy(oldPath); } else { var cachedResource = ResourceCache[oldPath]; if (cachedResource != null) { using (Stream writeStream = backingProvider.openWriteStream(newPath)) { using (Stream readStream = cachedResource.openStream()) { readStream.CopyTo(writeStream); } } } ResourceCache.forceCloseResourceFile(oldPath); } }
public void delete(String filename) { bool wasDir = backingProvider.isDirectory(filename); backingProvider.delete(filename); if (wasDir) { ResourceCache.forceCloseResourcesInDirectroy(filename); } else { ResourceCache.forceCloseResourceFile(filename); } }