本文整理匯總了TypeScript中vscode.FileSystemError類的典型用法代碼示例。如果您正苦於以下問題:TypeScript FileSystemError類的具體用法?TypeScript FileSystemError怎麽用?TypeScript FileSystemError使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了FileSystemError類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: getContentsUri
public getContentsUri(): string {
if (!this.structure || !this.techName)
throw FileSystemError.FileNotFound(this.path)
const include = ADTClient.classIncludes(this.structure).get(this
.techName as classIncludes)
if (!include) throw FileSystemError.FileNotFound(this.path)
return include
}
示例2: _writeFile
async _writeFile(uri: vscode.Uri, content: Uint8Array, options: { create: boolean; overwrite: boolean; }): Promise<void> {
const exists = await _.exists(uri.fsPath);
if (!exists) {
if (!options.create) {
throw vscode.FileSystemError.FileNotFound();
}
await _.mkdir(path.dirname(uri.fsPath));
} else {
if (!options.overwrite) {
throw vscode.FileSystemError.FileExists();
}
}
return _.writefile(uri.fsPath, content as Buffer);
}
示例3: massageError
function massageError(error: Error & { code?: string }): Error {
if (error.code === 'ENOENT') {
return vscode.FileSystemError.FileNotFound();
}
if (error.code === 'EISDIR') {
return vscode.FileSystemError.FileIsADirectory();
}
if (error.code === 'EEXIST') {
return vscode.FileSystemError.FileExists();
}
if (error.code === 'EPERM' || error.code === 'EACCESS') {
return vscode.FileSystemError.NoPermissions();
}
return error;
}
示例4: getChildren
public async getChildren(
client: ADTClient
): Promise<AbapNodeComponentByCategory[]> {
if (this.isLeaf()) throw FileSystemError.FileNotADirectory(this.vsName)
if (!this.structure) await this.loadMetadata(client)
if (!this.structure) throw FileSystemError.FileNotFound(this.vsName)
const ns: NodeStructureMapped = {
categories: new Map(),
objectTypes: new Map(),
nodes: []
}
const main = this.selfLeafNode()
main.OBJECT_URI = ADTClient.mainInclude(this.structure)
const sources = ADTClient.classIncludes(this.structure)
this.structure.includes.forEach(i => {
const node = {
EXPANDABLE: "",
OBJECT_NAME: this.name + "." + i["class:includeType"],
OBJECT_TYPE: i["adtcore:type"],
OBJECT_URI: sources.get(i["class:includeType"] as classIncludes) || "",
OBJECT_VIT_URI: "",
TECH_NAME: i["class:includeType"] // bit of a hack, used to match include metadata
}
if (node.OBJECT_URI) {
if (i["abapsource:sourceUri"] === "source/main") ns.nodes.unshift(node)
else ns.nodes.push(node)
}
})
const aggregated = aggregateNodes(ns, this.type)
for (const cat of aggregated)
for (const type of cat.types)
for (const incl of type.objects)
if (isClassInclude(incl)) incl.setParent(this)
return aggregated
}
示例5: _rename
async _rename(oldUri: vscode.Uri, newUri: vscode.Uri, options: { overwrite: boolean; }): Promise<void> {
const exists = await _.exists(newUri.fsPath);
if (exists) {
if (!options.overwrite) {
throw vscode.FileSystemError.FileExists();
} else {
await _.rmrf(newUri.fsPath);
}
}
const parentExists = await _.exists(path.dirname(newUri.fsPath));
if (!parentExists) {
await _.mkdir(path.dirname(newUri.fsPath));
}
return _.rename(oldUri.fsPath, newUri.fsPath);
}