https://blacksmithgu.github.io/obsidian-dataview/annotation/metadata-pages/ でファイルのメタデータ一覧
-
Object.keys(dv.page(targetFileName).file
でも確認できる
場合に応じてqueryを変える
-
フォルダの場合:
'"folder"'
-
特定リンクを保つ場合は:
[[link]]
ファイル名マッチは
-
dv.pages().file.where(page=>page.path.includes("ファイル名"))
```dataviewjs
let moveFiles = false
let destination = "<>" + "/"
const query = "<>"
const fileList = app.vault.getFiles();
const list = dv.page(query).file.outlinks
.where(page => !page.path.startsWith(destination))
.map(page => fileList.find(f=>f.path === page.path))
.where(page=>page)
if (moveFiles) {
list
.map(file => this.app.fileManager.renameFile((file, destination + file.name))
}
dv.list(list.map(l=>l.path))
```
ファイル名プレフィックスをつける
```dataviewjs
let moveFiles = false
let destination = "eat" + "/"
const prefix = ''
const fileList = app.vault.getFiles();
const list = dv.pages('[[食事-飲食店]]').file
.where(page => !page.name.startsWith('🍴'))
.map(page => fileList.find(f=>f.path === page.path))
.where(page=>page)
if (moveFiles) {
list
.map(file => this.app.fileManager.renameFile((file, destination + prefix + file.name))
}
dv.list(list.map(l=>l.path))
```
→ this.app.vault.rename
だとリンク切れちゃうので注意
https://forum.obsidian.md/t/vault-rename-file-path-doesnt-trigger-link-update/32317
let moveFiles = true
let destination = "n_private/items" + "/"
const prefix = '👜'
const fileList = app.vault.getFiles();
const list = dv.pages().file
.where(page=>page.path.startsWith(destination))
.where(page => !page.name.startsWith(prefix))
.map(page => fileList.find(f=>f.path === page.path))
.where(page=>page)
if (moveFiles) {
list
.map(file => this.app.fileManager.renameFile(file, destination + prefix + file.name))
}
dv.list(list.map(l=>l.path))