Skip to content

Commit e7aa84d

Browse files
author
Benjamin Pasero
committed
web - no errors when deleting files that do not exist (inMemory)
1 parent c61f36e commit e7aa84d

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

src/vs/workbench/services/userData/common/inMemoryUserDataProvider.ts

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -131,16 +131,19 @@ export class InMemoryFileSystemProvider extends Disposable implements IFileSyste
131131
}
132132

133133
async delete(resource: URI, opts: FileDeleteOptions): Promise<void> {
134-
let dirname = resources.dirname(resource);
135-
let basename = resources.basename(resource);
136-
let parent = this._lookupAsDirectory(dirname, false);
137-
if (!parent.entries.has(basename)) {
138-
throw new FileSystemProviderError('file not found', FileSystemProviderErrorCode.FileNotFound);
134+
try {
135+
let dirname = resources.dirname(resource);
136+
let basename = resources.basename(resource);
137+
let parent = this._lookupAsDirectory(dirname, false);
138+
if (parent.entries.has(basename)) {
139+
parent.entries.delete(basename);
140+
parent.mtime = Date.now();
141+
parent.size -= 1;
142+
this._fireSoon({ type: FileChangeType.UPDATED, resource: dirname }, { resource, type: FileChangeType.DELETED });
143+
}
144+
} catch (error) {
145+
// ignore if resource does not exist to keep parity with other file system providers
139146
}
140-
parent.entries.delete(basename);
141-
parent.mtime = Date.now();
142-
parent.size -= 1;
143-
this._fireSoon({ type: FileChangeType.UPDATED, resource: dirname }, { resource, type: FileChangeType.DELETED });
144147
}
145148

146149
async mkdir(resource: URI): Promise<void> {

0 commit comments

Comments
 (0)