FileSystemHandle
åºçº¿
广æ³å¯ç¨
*
èª 2023å¹´3æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
å®å ¨ä¸ä¸æ: æ¤ç¹æ§ä» å¨ä¸äºæ¯æçæµè§å¨çå®å ¨ä¸ä¸æï¼HTTPSï¼ä¸å¯ç¨ã
夿³¨ï¼ æ¤ç¹æ§å¨ Web Worker ä¸å¯ç¨ã
æä»¶ç³»ç» API ç FileSystemHandle æ¥å£æ¯ä»£è¡¨ä¸ä¸ªæä»¶æä¸ä¸ªç®å½ç对象ãå¤ä¸ªå¥æå¯ä»¥ä»£è¡¨åä¸ä¸ªæ¡ç®ãå¨å¤§å¤æ°æ
åµä¸ï¼ä½ ä¸ä¼ç´æ¥ä½¿ç¨ FileSystemHandleï¼èæ¯ä¼ç¨å°å®ç FileSystemFileHandle å FileSystemDirectoryHandle 忥å£ã
åºäº FileSystemHandle çæ¥å£
以䏿¯åºäº FileSystemHandle çæ¥å£çå表ã
FileSystemFileHandle-
æä¾ä¸ä¸ªæåæä»¶æ¡ç®ç奿ã
FileSystemDirectoryHandle-
æä¾ä¸ä¸ªæåç®å½æ¡ç®ç奿ã
å®ä¾å±æ§
å®ä¾æ¹æ³
isSameEntry()-
æ¯å¯¹ä¸¤ä¸ªå¥æä»¥æ¥ç两è å ³èçæ¡ç®ï¼æä»¶æç®å½ï¼æ¯å¦ç¸ç¬¦ã
queryPermission()-
æ¥è¯¢å½å奿ç®åçæéç¶æã
remove()-
ååºå±æä»¶ç³»ç»è¯·æ±ç§»é¤å¥ææä»£è¡¨çæ¡ç®ã
requestPermission()-
为æä»¶å¥æè¯·æ±è¯»åæè¯»åæéã
示ä¾
>æ£æ¥ç±»å
ä¸é¢ç代ç å è®¸ç¨æ·å¨æä»¶éæ©å¨éæ©ä¸ä¸ªæä»¶ï¼ç¶åæµè¯è¿åç奿æ¯ä¸ä¸ªæä»¶è¿æ¯ä¸ä¸ªç®å½ã
// 忾坹æä»¶å¥æçå¼ç¨
let fileHandle;
async function getFile() {
// æå¼æä»¶éæ©å¨
[fileHandle] = await window.showOpenFilePicker();
if (fileHandle.kind === "file") {
// è¿è¡é对æä»¶ç代ç
} else if (fileHandle.kind === "directory") {
// è¿è¡é对ç®å½ç代ç
}
}
æ¥è¯¢ä¸è¯·æ±æé
以ä¸å¼æ¥å½æ°ä¼å¨ç¨æ·å¯¹æä»¶å¥ææäºäºåªè¯»æè¯»åæéæ¶è¿å trueï¼è¥æ æéåè¯·æ±æéã
// fileHandle æ¯ä¸ä¸ª FileSystemFileHandle
// withWrite æ¯ä¸ä¸ªå¸å°å¼ï¼å¦æè¦æ±åå
¥åéä¼ å
¥ true
async function verifyPermission(fileHandle, withWrite) {
const opts = {};
if (withWrite) {
opts.mode = "readwrite";
}
// æ£æ¥æ¯å¦å·²ç»æ¥æç¸åºæéï¼å¦ææ¯ï¼è¿å trueã
if ((await fileHandle.queryPermission(opts)) === "granted") {
return true;
}
// 为æä»¶è¯·æ±æéï¼å¦æç¨æ·æäºäºæéï¼è¿å trueã
if ((await fileHandle.requestPermission(opts)) === "granted") {
return true;
}
// ç¨æ·æ²¡æææï¼è¿å falseã
return false;
}
æ¯å¯¹æ¡ç®
以ä¸å½æ°å°å个æ¡ç®ä¸æ¡ç®æ°ç»è¿è¡æ¯å¯¹ï¼è¿åå å«ä¸ç¸ç¬¦æ¡ç®çæ°æ°ç»ã
function removeMatches(fileEntry, entriesArr) {
const newArr = entriesArr.filter((entry) => !fileEntry.isSameEntry(entry));
return newArr;
}
è§è
| è§è |
|---|
| File System > # api-filesystemhandle > |