[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/ko/docs/Web/API/File_System_API [Back]  [Original]

File System API - Web API | MDN

This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

File System API

: (HTTPS) .

File System API , , . File System Access API .

In this article

File System API . API , , .

. FileSystemHandle , FileSystemFileHandle FileSystemDirectoryHandle .

. window.showOpenFilePicker() window.showDirectoryPicker() . .

.

, ( ). , . File System API . API , ( ).

: API . API . , .

(Origin Private File System, OPFS) File System API , . OPFS , .

.

FileSystemHandle

. . FileSystemHandle FileSystemFileHandle FileSystemDirectoryHandle .

FileSystemFileHandle

.

FileSystemDirectoryHandle

.

FileSystemSyncAccessHandle

. . WebAssembly . , .

FileSystemWritableFileStream

WritableStream , .

Window.showDirectoryPicker()

.

Window.showOpenFilePicker()

.

Window.showSaveFilePicker()

.

DataTransferItem.getAsFileSystemHandle()

FileSystemFileHandle, FileSystemDirectoryHandle .

StorageManager.getDirectory()

FileSystemDirectoryHandle . FileSystemDirectoryHandle Promise .

.

js
async function getFile() {
  //         
  const [fileHandle] = await window.showOpenFilePicker();
  const file = await fileHandle.getFile();
  return file;
}

, getFile() .

js
const pickerOpts = {
  types: [
    {
      description: "Images",
      accept: {
        "image/*": [".png", ".gif", ".jpeg", ".jpg"],
      },
    },
  ],
  excludeAcceptAllOption: true,
  multiple: false,
};

async function getTheFile() {
  //         
  const [fileHandle] = await window.showOpenFilePicker(pickerOpts);

  //   
  const fileData = await fileHandle.getFile();
}

. .

js
const dirName = "directoryToGetName";

// 'currentDirHandle'      
const subDir = currentDirHandle.getDirectoryHandle(dirName, { create: true });

, resolve() .

js
async function returnPathDirectories(directoryHandle) {
  //      
  const [handle] = await self.showOpenFilePicker();
  if (!handle) {
    //       
    return;
  }

  //         
  const relativePaths = await directoryHandle.resolve(handle);

  if (relativePaths === null) {
    //    
  } else {
    // relativePaths      

    for (const name of relativePaths) {
      //   
      console.log(name);
    }
  }
}

. FileSystemFileHandle . FileSystemFileHandle.createWritable() .

, Blob , .

js
async function saveFile() {
  //   
  const newHandle = await window.showSaveFilePicker();

  // Blob  FileSystemWritableFileStream 
  const writableStream = await newHandle.createWritable();

  //  
  await writableStream.write(imgBlob);

  //       
  await writableStream.close();
}

write() .

js
//   
writableStream.write(data);

//       
writableStream.write({ type: "write", position, data });

//      
writableStream.write({ type: "seek", position });

//  size    
writableStream.write({ type: "truncate", size });

OPFS

.

.

js
onmessage = async (e) => {
  //     
  const message = e.data;

  // OPFS     
  const root = await navigator.storage.getDirectory();
  const draftHandle = await root.getFileHandle("draft.txt", { create: true });
  //    
  const accessHandle = await draftHandle.createSyncAccessHandle();

  //   
  const fileSize = accessHandle.getSize();
  //    
  const buffer = new DataView(new ArrayBuffer(fileSize));
  const readBuffer = accessHandle.read(buffer, { at: 0 });

  //    
  const encoder = new TextEncoder();
  const encodedMessage = encoder.encode(message);
  const writeBuffer = accessHandle.write(encodedMessage, { at: readBuffer });

  //  
  accessHandle.flush();

  //     FileSystemSyncAccessHandle 
  accessHandle.close();
};

Specification
File System
File System Access

api.FileSystemHandle

api.FileSystemFileHandle

api.FileSystemDirectoryHandle

api.FileSystemWritableFileStream

api.FileSystemSyncAccessHandle


Web Proxy Viewer  |  New URL  |  Original Page