使用文件系统访问 API 保存文件时,如果在写入和保存新文件之间发生错误,仍会创建并保存文件。
有没有办法防止这个文件被创建和保存?
作为使用以下代码的示例,在运行 save 函数之前会引发错误。此错误会阻止保存功能运行;但是,仍然会创建一个文件。
let fileHandle;
async function save() {
let stream = await fileHandle.createWritable();
await stream.write();
await stream.close();
}
async function saveFile() {
const options = {
types: [{
description: 'Text File',
accept: {
'text/plain': '.txt'
},
}],
excludeAcceptAllOption: true,
}
try {
fileHandle = await window.showSaveFilePicker(options);
} catch (err) {
return;
}
throw "Some error occurs, preventing the 'save' function from being reached...";
save();
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>File System Access Test</title>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<button type="button" onclick="saveFile()">Save File</button>
</body>
</html>