# Content
### If you are wondering where your Canvas Files are, this dataviewJS will show you.
(Requires that you have the Dataview plug-in installed)
[Dataview Website](https://obsidian.rocks/dataview-in-obsidian-a-beginners-guide/)
```dataviewjs
// Specify the folder path
let folderPath = "";
// Function to recursively find .canvas files in the folder and subfolders
async function findCanvasFiles(folder) {
let canvasFiles = [];
let files = await app.vault.adapter.list(folder);
for (let file of files.files) {
if (file.endsWith(".canvas")) {
canvasFiles.push(file);
}
}
for (let subfolder of files.folders) {
canvasFiles.push(...await findCanvasFiles(subfolder));
}
return canvasFiles;
}
// Call the function to find .canvas files and then display them in a table
findCanvasFiles(folderPath).then(canvasFiles => {
if (canvasFiles.length > 0) {
dv.table(["Canvas Files"], canvasFiles.map(f => [f]));
} else {
dv.paragraph("No canvas files found in the specified folder.");
}
});
```
### This version has clickable links!
```dataviewjs
// Specify the folder path
let folderPath = "";
// Function to recursively find .canvas files in the folder and subfolders
async function findCanvasFiles(folder) {
let canvasFiles = [];
let files = await app.vault.adapter.list(folder);
for (let file of files.files) {
if (file.endsWith(".canvas")) {
canvasFiles.push(file);
}
}
for (let subfolder of files.folders) {
canvasFiles.push(...await findCanvasFiles(subfolder));
}
return canvasFiles;
}
// Call the function to find .canvas files and then display them as links
findCanvasFiles(folderPath).then(canvasFiles => {
if (canvasFiles.length > 0) {
dv.table(["Canvas Files"],
canvasFiles.map(f => [dv.fileLink(f)])
);
} else {
dv.paragraph("No canvas files found in the specified folder.");
}
});
```