in src/AzureStorageFS.ts [102:134]
async stat(uri: vscode.Uri): Promise<vscode.FileStat> {
let ctime: number = 0;
let mtime: number = 0;
let size: number = 0;
return await callWithTelemetryAndErrorHandling('stat', async (context) => {
context.telemetry.suppressIfSuccessful = true;
if (uri.path.endsWith('/')) {
// Ignore trailing forward slashes
// https://github.com/microsoft/vscode-azurestorage/issues/576
uri = uri.with({ path: uri.path.slice(0, -1) });
}
const treeItem: AzureStorageTreeItem = await this.lookup(uri, context);
const fileType: vscode.FileType = treeItem instanceof DirectoryTreeItem || treeItem instanceof FileShareTreeItem || treeItem instanceof BlobDirectoryTreeItem || treeItem instanceof BlobContainerTreeItem ? vscode.FileType.Directory : vscode.FileType.File;
let props: (BlobGetPropertiesResponse & FileGetPropertiesResponse) | undefined;
if (treeItem instanceof BlobTreeItem) {
const blockBlobClient: BlockBlobClient = createBlockBlobClient(treeItem.root, treeItem.container.name, treeItem.blobPath);
props = await blockBlobClient.getProperties();
} else if (treeItem instanceof FileTreeItem) {
const fileClient: ShareFileClient = createFileClient(treeItem.root, treeItem.shareName, treeItem.directoryPath, treeItem.fileName);
props = await fileClient.getProperties();
}
ctime = props?.createdOn?.valueOf() || props?.fileCreatedOn?.valueOf() || 0;
mtime = props?.lastModified?.valueOf() || 0;
size = props?.contentLength || 0;
return { type: fileType, ctime, mtime, size };
}) || { type: vscode.FileType.Unknown, ctime, mtime, size };
}