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);
            }
        }