ããã³ããšã³ãéçºã«ãããã¢ãããã¯ãã¡ã€ã«æäœãæ¢æ±ããä¿¡é Œæ§ã®é«ãããŒã¿ç®¡çãå®çŸããã©ãŠã¶ã®File System Access APIãçšãããã©ã³ã¶ã¯ã·ã§ã³å®è£ æ¹æ³ãåŠã³ãWebã¢ããªã®ããŒã¿æŽåæ§ã確ä¿ããŸãã
ããã³ããšã³ããã¡ã€ã«ã·ã¹ãã ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çïŒå ç¢ãªWebã¢ããªã®ããã®ã¢ãããã¯ãã¡ã€ã«æäœ
çŸä»£ã®Webã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã®ãã¡ã€ã«ã·ã¹ãã ãšçŽæ¥å¯Ÿè©±ããèœåããŸããŸãé«ããŠãããããŒã«ã«ãã¡ã€ã«ã®ç·šéããªãã©ã€ã³ãµããŒããé«åºŠãªããŒã¿åŠçãšãã£ã匷åãªæ©èœãå¯èœã«ããŠããŸãããããããã®æ°ããªåã«ã¯ãããŒã¿æŽåæ§ã確ä¿ãããšãã責任ã䌎ããŸããã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ãã¡ã€ã«ããã¡ã€ã«ã®äžéšã倿Žããå Žåããã¹ãŠã®å€æŽãæåè£ã«é©çšããããããããã¯ãŸã£ããé©çšãããªããã®ã©ã¡ãããä¿èšŒããã¡ã«ããºã ãå¿ èŠã§ããããã§éèŠã«ãªãã®ããã¢ãããã¯ãã¡ã€ã«æäœãšãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã§ããè€æ°ã®ãŠãŒã¶ãŒãåæã«å€æŽãå ããŠããå ±åããã¥ã¡ã³ãç·šéã¢ããªã±ãŒã·ã§ã³ãæ³åããŠã¿ãŠãã ããããã¡ã€ã«æäœã®ç®¡çãé©åã«è¡ããªããšãããŒã¿ã®ç Žæãäœæ¥å å®¹ã®æå€±ã«ã€ãªããå¯èœæ§ããããŸãã
ã¢ãããã¯ãã¡ã€ã«æäœã®å¿ èŠæ§ãçè§£ãã
ã¢ãããã¯æäœã¯ãäžå¯åã§äžæäžå¯èœãªäœæ¥åäœã§ãããã¡ã€ã«ã·ã¹ãã ã®æèã§ã¯ãã¢ãããã¯æäœã¯äžé£ã®ãã¡ã€ã«å€æŽïŒäŸïŒè€æ°ã®ãã¡ã€ã«ãžã®æžã蟌ã¿ããã¡ã€ã«åã®å€æŽããã¡ã€ã«ã®åé€ïŒãå®å šã«æåããããå®å šã«å€±æãããã®ã©ã¡ããã§ããããšãä¿èšŒããŸããæäœã®ããããã®éšåã倱æããå ŽåïŒåé»ããã©ãŠã¶ã®ã¯ã©ãã·ã¥ããã®ä»ã®äºæãã¬ãšã©ãŒã«ããïŒãæäœå šäœãããŒã«ããã¯ããããã¡ã€ã«ã·ã¹ãã ã¯å ã®ç¶æ ã«æ»ããŸããããã¯ãããŒã¿ã®æŽåæ§ã«å¯ŸããŠåæ§ã®ä¿èšŒãæäŸããããŒã¿ããŒã¹ãã©ã³ã¶ã¯ã·ã§ã³ã«äŒŒãŠããŸãã
ã¢ãããã¯æäœããªããã°ãã¢ããªã±ãŒã·ã§ã³ã¯äžæŽåãªç¶æ ã«é¥ããããŒã¿ã®æå€±ãç Žæã«ã€ãªããå¯èœæ§ããããŸããäŸãã°ãã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ãã¡ã€ã«ã«ãŸãããè€éãªããã¥ã¡ã³ããä¿åããŠããã·ããªãªãèããŠã¿ãŸããããæåã®æ°ãã¡ã€ã«ãæžã蟌ãã åŸãæ®ããæžã蟌ãåã«ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããå Žåãããã¥ã¡ã³ãã¯äžå®å šã§ã䜿çšã§ããªããªãå¯èœæ§ããããŸããã¢ãããã¯æäœã¯ããã¹ãŠã®ãã¡ã€ã«ãæåè£ã«æžã蟌ãŸãããããããã¯å šãæžã蟌ãŸããªããã®ã©ã¡ãããä¿èšŒããããšã§ããããé²ããŸãã
File System Access APIã®ç޹ä»
File System Access APIïŒæ§ç§°ïŒNative File System APIïŒã¯ãWebã¢ããªã±ãŒã·ã§ã³ã«ãŠãŒã¶ãŒã®ããŒã«ã«ãã¡ã€ã«ã·ã¹ãã ãžã®å®å šãã€çŽæ¥çãªã¢ã¯ã»ã¹ãæäŸããŸãããã®APIã«ããããŠãŒã¶ãŒã¯ãŠã§ããµã€ãã«ãã¡ã€ã«ããã©ã«ããžã®ã¢ã¯ã»ã¹ãèš±å¯ã§ããWebã¢ããªã¯ãããŸã§ãã€ãã£ãã¢ããªã±ãŒã·ã§ã³ã§ããäžå¯èœã ã£ãæ¹æ³ã§ããŒã«ã«ãã¡ã€ã«ãšå¯Ÿè©±ã§ããããã«ãªããŸãã
File System Access APIã¯ããã©ã³ã¶ã¯ã·ã§ã³ç®¡çã«é¢é£ããããã€ãã®äž»èŠãªæ©èœãæäŸããŸãïŒ
- ãã¡ã€ã«ãã³ãã«ïŒ ãã¡ã€ã«ããã£ã¬ã¯ããªãžã®åç §ã衚ãããã¡ã€ã«ã®èªã¿åããæžã蟌ã¿ã倿Žãå¯èœã«ããŸãã
- ãã£ã¬ã¯ããªãã³ãã«ïŒ ãã£ã¬ã¯ããªãžã®åç §ã衚ãããã¡ã€ã«ã®äžèŠ§è¡šç€ºãæ°èŠãã¡ã€ã«ã®äœæããã¡ã€ã«ã·ã¹ãã ã®ããã²ãŒããå¯èœã«ããŸãã
- æžã蟌ã¿å¯èœã¹ããªãŒã ïŒ å¶åŸ¡ãããå¹ççãªæ¹æ³ã§ãã¡ã€ã«ã«ããŒã¿ãæžãèŸŒãæ¹æ³ãæäŸããŸãã
File System Access APIèªäœã¯ãçµã¿èŸŒã¿ã®ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çãçŽæ¥æäŸããŠããŸããããæåãŸãã¯ã©ã€ãã©ãªãä»ããŠã¢ãããã¯ãã¡ã€ã«æäœãå®è£ ããããã«å¿ èŠãªæ§æèŠçŽ ãæäŸããŸãã
ã¢ãããã¯ãã¡ã€ã«æäœã®å®è£
File System Access APIã䜿çšããŠã¢ãããã¯ãã¡ã€ã«æäœãå®è£ ããã«ã¯ãããã€ãã®æŠç¥ããããŸããæãäžè¬çãªã¢ãããŒãã¯ãäžæãã¡ã€ã«ãäœæãã倿Žå 容ããããã®äžæãã¡ã€ã«ã«æžã蟌ã¿ããã®åŸãå ã®ãã¡ã€ã«ã眮ãæããããã«ã¢ãããã¯ã«ååã倿Žãããšãããã®ã§ããããã«ããããã¹ãŠã®å€æŽãæåè£ã«æžã蟌ãŸãããŸã§ãå ã®ãã¡ã€ã«ãçŽæ¥å€æŽãããããšã¯ãããŸããã
1. äžæãã¡ã€ã«ã¢ãããŒã
ããã¯ãã¢ãããã¯ãã¡ã€ã«æäœãå®çŸããããã®åºã䜿çšãããŠãããæ¯èŒçåãããããæ¹æ³ã§ããåºæ¬çãªæé ã¯æ¬¡ã®ãšããã§ãïŒ
- äžæãã¡ã€ã«ã®äœæïŒ 倿Žããåãã¡ã€ã«ã«å¯ŸããŠãåããã£ã¬ã¯ããªã«äžæãã¡ã€ã«ãäœæããŸãããããã®äžæ¬¡ãã¡ã€ã«ã¯æ°ããã³ã³ãã³ããä¿æããŸããäžæãã¡ã€ã«ã«ã¯ãæ¢åã®ãã¡ã€ã«ãšè¡çªããªããããªååãä»ããã®ãè¯ãç¿æ £ã§ãïŒäŸïŒå ãã¡ã€ã«åã«äžæã®èå¥åãã¿ã€ã ã¹ã¿ã³ãã远å ããïŒã
- äžæãã¡ã€ã«ãžã®æžã蟌ã¿ïŒ æžã蟌ã¿å¯èœã¹ããªãŒã ã䜿çšããŠãæ°ããã³ã³ãã³ããäžæãã¡ã€ã«ã«æžã蟌ã¿ãŸãã
- æžã蟌ã¿ã®æ€èšŒïŒ äžæãã¡ã€ã«ãžã®ãã¹ãŠã®æžã蟌ã¿ãæ£åžžã«å®äºããããšã確èªããŸããããã«ã¯ããšã©ãŒã®ãã§ãã¯ãäŸå€ã®åŠçãå«ãŸããå ŽåããããŸãã
- äžæãã¡ã€ã«ã®ã¢ãããã¯ãªåå倿ŽïŒ äžæãã¡ã€ã«ã®ååãå ã®ãã¡ã€ã«åã«å€æŽããŸãããããæäœãã¢ãããã¯ã«ããéèŠãªã¹ãããã§ããäœããã®çç±ã§åå倿޿äœã倱æããå Žåãå ã®ãã¡ã€ã«ã¯å€æŽãããªããŸãŸæ®ããŸãã
- ã¯ãªãŒã³ã¢ããïŒ åå倿޿äœãæåããå Žåãå ã®ãã¡ã€ã«ïŒäžæžããããå ŽåïŒãšäžæãã¡ã€ã«ïŒåå倿Žãããªãã£ãå ŽåïŒãåé€ããŸããåå倿޿äœã倱æããå Žåã¯ãäžæãã¡ã€ã«ãåé€ããŠãæ®ããªãããã«ããŸãã
ãã®ã¢ãããŒãã瀺ãç°¡åãªJavaScriptã®äŸã以äžã«ç€ºããŸãïŒ
async function atomicWrite(fileHandle, newData) {
const originalFilename = fileHandle.name;
const tempFilename = originalFilename + ".tmp";
try {
// 1. Create temporary file
const tempFileHandle = await fileHandle.getParent();
const newFileHandle = await tempFileHandle.getFileHandle(tempFilename, {create: true});
// 2. Write to temporary file
const writableStream = await newFileHandle.createWritable();
await writableStream.write(newData);
await writableStream.close();
// 3. Atomically rename temporary file (this part is not directly supported by the File System Access API)
// We need to simulate it by copying the content and deleting the original. This is NOT truly atomic.
// Read the content of the temporary file
const tempFile = await newFileHandle.getFile();
const reader = new FileReader();
reader.readAsText(tempFile);
await new Promise((resolve, reject) => {
reader.onload = async () => {
const content = reader.result;
// Open a writable stream to the original file
const originalWritableStream = await fileHandle.createWritable();
// Write the content from the temporary file to the original file
await originalWritableStream.write(content);
// Close the stream
await originalWritableStream.close();
// Delete the temporary file
await tempFileHandle.removeEntry(tempFilename);
resolve();
};
reader.onerror = reject;
});
} catch (error) {
console.error("Atomic write failed:", error);
// Attempt to clean up the temporary file if it exists
try {
const tempFileHandle = await fileHandle.getParent();
await tempFileHandle.removeEntry(tempFilename);
} catch (cleanupError) {
console.warn("Failed to clean up temporary file:", cleanupError);
}
throw error; // Re-throw the original error to signal failure
}
}
éèŠäºé ïŒ File System Access APIã¯çŸåšãçã«ã¢ãããã¯ãªåå倿޿äœãæäŸããŠããŸãããäžèšã®ã³ãŒãã¯ãäžæãã¡ã€ã«ããå ã®ãã¡ã€ã«ã«ã³ã³ãã³ããã³ããŒãããã®åŸäžæãã¡ã€ã«ãåé€ããããšã§ããããã·ãã¥ã¬ãŒãããŠããŸããããã¯åççãªã¬ãã«ã®å®å šæ§ãæäŸããŸããããã¹ãŠã®å Žåã«ãããŠã¢ãããã¯ã§ããããšãä¿èšŒãããŠããããã§ã¯ãããŸããïŒäŸïŒã³ããŒæäœäžã«ãã©ãŠã¶ãã¯ã©ãã·ã¥ããå ŽåïŒãAPIã®å°æ¥ã®ããŒãžã§ã³ã«ã¯ããã€ãã£ãã®ã¢ãããã¯åå倿޿©èœãå«ãŸããå¯èœæ§ããããŸãã
2. ãžã£ãŒããªã³ã°
ãžã£ãŒããªã³ã°ã¯ãããè€éã§ãããæœåšçã«ããå ç¢ãªã¢ãããã¯ãã¡ã€ã«æäœã®ã¢ãããŒãã§ããããã¯ããã¡ã€ã«ã·ã¹ãã ã«å ãããããã¹ãŠã®å€æŽã®ãã°ïŒãŸãã¯ãžã£ãŒãã«ïŒãç¶æããããšãå«ã¿ãŸããé害ãçºçããå Žåããžã£ãŒãã«ã䜿çšããŠå€æŽãããŒã«ããã¯ãããã¡ã€ã«ã·ã¹ãã ãæŽåæ§ã®ããç¶æ ã«åŸ©å ã§ããŸãã
ãžã£ãŒããªã³ã°ã®åºæ¬çãªæé ã¯æ¬¡ã®ãšããã§ãïŒ
- ãžã£ãŒãã«ãã¡ã€ã«ã®äœæïŒ ãžã£ãŒãã«ãä¿åããããã®å¥ã®ãã¡ã€ã«ãäœæããŸãããã®ãã¡ã€ã«ã«ã¯ããã¡ã€ã«ã·ã¹ãã ã«å ãããããã¹ãŠã®å€æŽã®èšé²ãå«ãŸããŸãã
- ãžã£ãŒãã«ãžã®å€æŽèšé²ïŒ ãã¡ã€ã«ã·ã¹ãã ã«å€æŽãå ããåã«ãæå³ãã倿Žã®èšé²ããžã£ãŒãã«ã«æžã蟌ã¿ãŸãããã®èšé²ã«ã¯ãå¿ èŠã«å¿ããŠå€æŽãå ã«æ»ãã®ã«ååãªæ å ±ãå«ãŸããŠããå¿ èŠããããŸãã
- ãã¡ã€ã«ã·ã¹ãã ãžã®å€æŽé©çšïŒ ãã¡ã€ã«ã·ã¹ãã ã«å€æŽãå ããŸãã
- ãžã£ãŒãã«ãå®äºãšããŠããŒã¯ïŒ ãã¹ãŠã®å€æŽãæ£åžžã«é©çšãããããæäœãå®äºããããšã瀺ãç¹å¥ãªããŒã«ãŒããžã£ãŒãã«ã«æžã蟌ã¿ãŸãã
- ããŒã«ããã¯ïŒå¿ èŠãªå ŽåïŒïŒ ãžã£ãŒãã«ãå®äºãšããŠããŒã¯ãããåã«é害ãçºçããå Žåããžã£ãŒãã«å ã®æ å ±ã䜿çšããŠå€æŽãå ã«æ»ãããã¡ã€ã«ã·ã¹ãã ã以åã®ç¶æ ã«åŸ©å ããŸãã
ãžã£ãŒããªã³ã°ã¯äžæãã¡ã€ã«ã¢ãããŒããããå®è£ ãå€§å¹ ã«è€éã§ãããç¹ã«äºæãã¬é害ã«çŽé¢ããå Žåã«ããã匷åãªããŒã¿æŽåæ§ã®ä¿èšŒãæäŸããŸãã
3. ã©ã€ãã©ãªã®äœ¿çš
ã¢ãããã¯ãã¡ã€ã«æäœããŒãããå®è£ ããã®ã¯ãå°é£ã§ãšã©ãŒãçºçããããå¯èœæ§ããããŸãã幞ããªããšã«ãããã»ã¹ãç°¡çŽ åããã®ã«åœ¹ç«ã€ããã€ãã®ã©ã€ãã©ãªããããŸãããããã®ã©ã€ãã©ãªã¯ãå€ãã®å Žåãäœã¬ãã«ã®è©³çްãå¿é ããããšãªãã¢ãããã¯æäœãç°¡åã«å®è¡ã§ãããããé«ã¬ãã«ã®æœè±¡åãæäŸããŸãã
ãã©ãŠã¶ã®File System Access APIã䜿çšããã¢ãããã¯ãã¡ã€ã«æäœã«ç¹åããã©ã€ãã©ãªã¯ïŒæ¯èŒçæ°ããæè¡ã§ããããïŒãŸã åºãå©çšå¯èœã§ã¯ãããŸããããæ¢åã®ãã¡ã€ã«æäœçšãŠãŒãã£ãªãã£ã©ã€ãã©ãªãé©å¿ãããäžèšã®äžæãã¡ã€ã«ã¢ãããŒããšçµã¿åãããããšãã§ããŸããå ç¢ãªãã¡ã€ã«æžã蟌ã¿ããã³æäœæ©èœãæäŸããã©ã€ãã©ãªãæ¢ããŠãã ããã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
ã¢ãããã¯ãã¡ã€ã«æäœã¯ãå¹ åºãWebã¢ããªã±ãŒã·ã§ã³ã§äžå¯æ¬ ã§ãïŒ
- å ±åããã¥ã¡ã³ãç·šéïŒ è€æ°ã®ãŠãŒã¶ãŒããã®åæç·šéãäžè²«ããŠãããŒã¿æå€±ãªãé©çšãããããšãä¿èšŒããŸããäŸãã°ã2人ã®ãŠãŒã¶ãŒãåãæ®µèœãåæã«ç·šéããŠããå Žåãã¢ãããã¯æäœã¯äžæ¹ã®ãŠãŒã¶ãŒã®å€æŽã仿¹ã®ãŠãŒã¶ãŒã®å€æŽãäžæžãããã®ãé²ãããšãã§ããŸãã
- ãªãã©ã€ã³å¯Ÿå¿ã¢ããªã±ãŒã·ã§ã³ïŒ ãŠãŒã¶ãŒããªãã©ã€ã³ã§ãã¡ã€ã«ãæäœããã€ã³ã¿ãŒãããã«åæ¥ç¶ãããšãã«å€æŽãåæã§ããããã«ããŸããã¢ãããã¯æäœã¯ãã¢ããªã±ãŒã·ã§ã³ããªã³ã©ã€ã³ã«æ»ã£ããšãã«ãªãã©ã€ã³ã®å€æŽãã¢ãããã¯ã«é©çšãããããšãä¿èšŒããŸããã€ã³ãã®å°æ¹ã§åããã£ãŒã«ãã¯ãŒã«ãŒãèšé²ãæŽæ°ããŠãããšæ³åããŠãã ãããæç¶çãªæ¥ç¶ã§ããã¢ãããã¯æäœã¯ããŒã¿ã®æŽåæ§ã確ä¿ããŸãã
- ã³ãŒããšãã£ã¿ãšIDEïŒ ã³ãŒããã¡ã€ã«ãä¿åããéã®ããŒã¿æå€±ãé²ããŸããç¹ã«ãè€æ°ã®ãã¡ã€ã«ã§æ§æãããå€§èŠæš¡ãªãããžã§ã¯ããæ±ãå Žåã«éèŠã§ããæ±äº¬ã®éçºè ã¯ãåé»ã«ãã£ãŠãããžã§ã¯ããã¡ã€ã«ã®ååãç ŽæããããšãæãŸãªãã§ãããã
- ã³ã³ãã³ã管çã·ã¹ãã ïŒCMSïŒïŒ ã³ã³ãã³ãã®æŽæ°ãäžè²«ããŠãç Žæãªãé©çšãããããšãä¿èšŒããŸãããã€ãžã§ãªã¢ã®ããã¬ãŒããµã€ããæŽæ°ããŠããéã«ãçªç¶ã®ãã©ãŠã¶ã¯ã©ãã·ã¥ã§æçš¿ãæªå®æã®ãŸãŸæ®ãããããšããªããšããä¿èšŒãæãã§ãããã
- ç»åããã³åç»ç·šéã¢ããªã±ãŒã·ã§ã³ïŒ è€æ°ã®ãã¡ã€ã«ã䌎ãè€éãªç·šéæäœäžã®ããŒã¿æå€±ãé²ããŸãã
- ãã¹ã¯ãããã©ã€ã¯ãªWebã¢ããªã±ãŒã·ã§ã³ïŒ ãã¹ã¯ãããã¬ãã«ã®æ©èœãæäŸããããšåªåããWebã¢ããªã±ãŒã·ã§ã³ã¯ããã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹ãå¿ èŠãšããã¢ãããã¯ãã¡ã€ã«æäœããæ©æµãåããã§ãããã
ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã®ãã¹ããã©ã¯ãã£ã¹
ããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã§ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çãå®è£ ããéã«åŸãã¹ãããã€ãã®ãã¹ããã©ã¯ãã£ã¹ã以äžã«ç€ºããŸãïŒ
- ãã©ã³ã¶ã¯ã·ã§ã³ãçãä¿ã€ïŒ ãã©ã³ã¶ã¯ã·ã§ã³ã®æéãæå°éã«æããç«¶åã®ãªã¹ã¯ãæžãããããã©ãŒãã³ã¹ãåäžãããŸãã
- ãšã©ãŒãæ éã«åŠçããïŒ å ç¢ãªãšã©ãŒãã³ããªã³ã°ãå®è£ ããäŸå€ããã£ããããŠå¿ èŠã«å¿ããŠãã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ããŸãã
- ãã®ã³ã°ã䜿çšããïŒ ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³é¢é£ã€ãã³ãããã°ã«èšé²ããåé¡ã®èšºæããã¡ã€ã«ã·ã¹ãã ã®ç¶æ ã®è¿œè·¡ã«åœ¹ç«ãŠãŸãã
- 培åºçã«ãã¹ãããïŒ ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã³ãŒãã培åºçã«ãã¹ãããããŸããŸãªæ¡ä»¶äžã§æ£ããæ©èœããããšã確èªããŸããããã«ã¯ãç°ãªããã¡ã€ã«ãµã€ãºãç°ãªããããã¯ãŒã¯æ¡ä»¶ãããŸããŸãªçš®é¡ã®é害ã§ã®ãã¹ããå«ãŸããŸãã
- åæå®è¡æ§ãèæ ®ããïŒ ã¢ããªã±ãŒã·ã§ã³ãè€æ°ã®ãŠãŒã¶ãŒã«åããã¡ã€ã«ãžã®åæã¢ã¯ã»ã¹ãèš±å¯ããå Žåãç«¶åãé²ããããŒã¿ã®äžè²«æ§ã確ä¿ããããã«ãåæå®è¡å¶åŸ¡ã¡ã«ããºã ãèæ ®ããå¿ èŠããããŸããããã«ã¯ããããã³ã°ããªããã£ãã¹ãã£ãã¯åæå®è¡å¶åŸ¡ã®äœ¿çšãå«ãŸããå ŽåããããŸãã
- ããã©ãŒãã³ã¹ãç£èŠããïŒ ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã³ãŒãã®ããã©ãŒãã³ã¹ãç£èŠããããã«ããã¯ãç¹å®ããŠãã®å¹çãæé©åããŸãã
- ãŠãŒã¶ãŒã«ãã£ãŒãããã¯ãæäŸããïŒ ãã¡ã€ã«æäœã®ç¶æ³ãç¹ã«é·æéå®è¡ããããã©ã³ã¶ã¯ã·ã§ã³äžã«ããŠãŒã¶ãŒã«æç¢ºãªãã£ãŒãããã¯ãæäŸããŸããããã¯ããã©ã¹ãã¬ãŒã·ã§ã³ãé²ãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããã®ã«åœ¹ç«ã¡ãŸãã
ããã³ããšã³ããã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹ã®æªæ¥
File System Access APIã¯æ¯èŒçæ°ããæè¡ã§ãããä»åŸæ°å¹Žéã§å€§å¹ ã«é²åããå¯èœæ§ããããŸããAPIã®å°æ¥ã®ããŒãžã§ã³ã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³ç®¡çã®çµã¿èŸŒã¿ãµããŒããå«ãŸããã¢ãããã¯ãã¡ã€ã«æäœã®å®è£ ã容æã«ãªããããããŸããããŸããããã©ãŒãã³ã¹ãã»ãã¥ãªãã£ããŠãŒã¶ããªãã£ã®åäžãæåŸ ã§ããŸãã
Webã¢ããªã±ãŒã·ã§ã³ããŸããŸãé«åºŠåããã«ã€ããŠããŠãŒã¶ãŒã®ãã¡ã€ã«ã·ã¹ãã ãšçŽæ¥å¯Ÿè©±ããèœåã¯ããã«éèŠã«ãªããŸããã¢ãããã¯ãã¡ã€ã«æäœãšãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã®ååãçè§£ããããšã§ãã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããå ç¢ã§ä¿¡é Œæ§ã®é«ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã
çµè«
ã¢ãããã¯ãã¡ã€ã«æäœã¯ããŠãŒã¶ãŒã®ãã¡ã€ã«ã·ã¹ãã ãšå¯Ÿè©±ããå ç¢ã§ä¿¡é Œæ§ã®é«ãWebã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããäžã§éèŠãªåŽé¢ã§ããFile System Access APIã«ã¯çµã¿èŸŒã¿ã®ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çæ©èœã¯ãããŸããããéçºè ã¯äžæãã¡ã€ã«ããžã£ãŒããªã³ã°ãªã©ã®æè¡ã䜿çšããŠã¢ãããã¯æäœãå®è£ ã§ããŸãããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã©ãŒãæ éã«åŠçããããšã§ãããŒã¿ã®æŽåæ§ã確ä¿ããã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸããFile System Access APIãé²åããã«ã€ããŠãããã³ããšã³ãã§ãã¡ã€ã«ã·ã¹ãã ãã©ã³ã¶ã¯ã·ã§ã³ã管çããããã®ããã«åŒ·åã§äŸ¿å©ãªæ¹æ³ãç»å ŽããããšãæåŸ ãããŸãã