回答編集履歴
1
コード修正
test
CHANGED
@@ -2,4 +2,32 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
Google Chrome など、[File System Access API](https://wicg.github.io/file-system-access/) をサポートしているブラウザであれば、[`showDirectoryPicker()`](https://wicg.github.io/file-system-access/#api-showdirectorypicker)でユーザにディレクトリを指定してもらって、[`getFileHandle('name.mid', {create:true})`](https://wicg.github.io/file-system-access/#dom-filesystemdirectoryhandle-getfilehandle) でファイルを作ることが可能
|
5
|
+
Google Chrome など、[File System Access API](https://wicg.github.io/file-system-access/) をサポートしているブラウザであれば、[`showDirectoryPicker()`](https://wicg.github.io/file-system-access/#api-showdirectorypicker)で**ユーザにディレクトリを指定してもらって**、[`getFileHandle('name.mid', {create:true})`](https://wicg.github.io/file-system-access/#dom-filesystemdirectoryhandle-getfilehandle) でファイルを作ることが可能です。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
(どっちにしても、ウェブページ側でファルダを指定することはセキュリティ上の理由で不可能です。)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
以下、サンプルコードです。https:// でのみ動きます。
|
14
|
+
|
15
|
+
```js
|
16
|
+
|
17
|
+
button.addEventListener('click', async () => {
|
18
|
+
|
19
|
+
...
|
20
|
+
|
21
|
+
let dirHandle = await window.showDirectoryPicker();
|
22
|
+
|
23
|
+
let fileHandle = await dirHandle.getFileHandle('name.midi', {create:true});
|
24
|
+
|
25
|
+
let stream = await fileHandle.createWritable();
|
26
|
+
|
27
|
+
await stream.write(new MidiWriter.Writer(track).buildFile());
|
28
|
+
|
29
|
+
await stream.close();
|
30
|
+
|
31
|
+
});
|
32
|
+
|
33
|
+
```
|