public void Close(FileWrapper file) { lock (this) { if (_files.ContainsKey(file.Path)) { FileCounter counter = _files[file.Path]; if (--counter.Count == 0) { counter.Stream.Close(); _files.Remove(file.Path); } } } }
public FileWrapper GetFile(string path) { lock (this) { FileCounter counter; if (!_files.ContainsKey(path)) { var stream = new IsolatedStorageFileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, _storage); counter = _files[path] = new FileCounter(stream); } else { counter = _files[path]; counter.Count++; } return new FileWrapper(path, counter.Stream, this); } }
public FileWrapper GetFile(string path) { lock (this) { FileCounter counter; if (!_files.ContainsKey(path)) { var stream = new IsolatedStorageFileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite, _storage); counter = _files[path] = new FileCounter(stream); } else { counter = _files[path]; counter.Count++; } return(new FileWrapper(path, counter.Stream, this)); } }