該賞金到期in 4天。此問題的答案有資格獲得 300聲望獎勵。 CommonCoreTawan想提請大家注意這個問題:
想聽聽實際實施過與此類似的事情的人的意見,以及最好的方法是什么
我想撰寫一個擴展程式,它將:
- 讀取當前作業區中的檔案夾和檔案
- 通過創建新檔案夾并將檔案移動到其中來重新組織這些檔案
所以我需要一個 API 來完成上述操作。我不清楚是否應該使用標準fs節點模塊、檔案系統提供程式或workspace命名空間。
我在這里閱讀了答案如何訪問 VSCode 用戶的檔案系統?但它沒有說明使用什么來創建檔案夾和在作業區內移動檔案。
uj5u.com熱心網友回復:
我找到了Microsoft 提供的示例代碼,您可以使用它。
一般的想法是
首先使用以下命令為給定方案注冊檔案系統提供程式
registerFileSystemProviderconst memFs = new MemFS(); context.subscriptions.push( vscode.workspace.registerFileSystemProvider('memfs', memFs, { isCaseSensitive: true }));接下來是注冊命令
registerCommand以在 FileSystemProvider 中執行您的操作,例如readDirectory,readFile,createDirectory,copy,deletecontext.subscriptions.push( vscode.commands.registerCommand('memfs.init', _ => { #TODO: add required functionalities }));讀取檔案夾和讀取檔案
for (const [name] of memFs.readDirectory(vscode.Uri.parse('memfs:/'))) { memFs.readFile(vscode.Uri.parse(`memfs:/${name}`)); }創建新檔案夾
memFs.createDirectory(vscode.Uri.parse(`memfs:/folder/`));將檔案移動到新創建的檔案夾。不幸的是,似乎沒有單獨的移動檔案命令,但您可以使用 Copy 命令復制到新檔案夾然后洗掉
復制
copy(source: Uri, destination: Uri, options: {overwrite: boolean})洗掉
context.subscriptions.push(vscode.commands.registerCommand('memfs.reset', _ => { for (const [name] of memFs.readDirectory(vscode.Uri.parse('memfs:/'))) { memFs.delete(vscode.Uri.parse(`memfs:/${name}`)); } }));
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/314009.html
