精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

純前端也可以訪問文件系統!

開發 前端
excludeAcceptAllOption?:布爾值,默認為false。默認情況下,文件選擇器帶有一個允許用戶選擇所有類型文件的過濾選項(展開于文件類型選項中)。設置此選項為 true 以使該過濾選項不可用。

前言

周末逛github的時候,發現我們只需要在github域名上加上1s他就能夠打開一個vscode窗口來閱讀代碼,比起在github倉庫中查看更加方便

圖片圖片

然后我就想網頁端vscode能不能打開我本地的項目呢,帶著這個疑惑我打開了網頁版vscode,它居然真的可以打開我本地的項目代碼!

圖片圖片

難道又出了新的API讓前端的能力更進一步了?打開MDN查了一下相關文檔,發現了幾個新的API

showOpenFilePicker

用來選擇文件

圖片圖片

語法

showOpenFilePicker()

參數

  • 「options」:(可選)包含以下屬性

multiple:布爾值,默認為false。為true表示允許用戶選擇多個文件

excludeAcceptAllOption:布爾值,默認為false。默認情況下,文件選擇器帶有一個允許用戶選擇所有類型文件的過濾選項(展開于文件類型選項中)。設置此選項為 true 以使該過濾選項不可用。

types:表示允許選擇的文件類型的數組

返回值

返回一個promise對象,會兌現一個包含 FileSystemFileHandle 對象的 Array 數組。

體驗

<template>
  <div class="open_file" @click="openFile">打開文件</div>
</template>

<script setup lang="ts">
const openFile = async () => {
  const res = await window.showOpenFilePicker();
  console.log(res);
};
</script>

默認只能打開一個文件,可以傳入multiple:true打開多個文件

圖片圖片

showDirectoryPicker

用來選擇目錄

圖片圖片

語法

屬于瀏覽器全局方法,直接調用即可

showDirectoryPicker()

參數

  • 「options」:(可選)包含以下屬性

multiple:布爾值,默認為false。為true表示允許用戶選擇多個文件

excludeAcceptAllOption:布爾值,默認為false。默認情況下,文件選擇器帶有一個允許用戶選擇所有類型文件的過濾選項(展開于文件類型選項中)。設置此選項為 true 以使該過濾選項不可用。

types:表示允許選擇的文件類型的數組

返回值

返回一個promise對象,會兌現一個包含 FileSystemFileHandle 對象的 Array 數組。

體驗

<template>
  <div class="open_file" @click="openFile">打開文件</div>
  <div class="open_file" @click="openDir">打開文件夾</div>
</template>

<script setup lang="ts">
const openFile = async () => {
  const res = await window.showOpenFilePicker({
    // multiple: true,
  });
  console.log(res.length);
};

const openDir = async () => {
  const res = await window.showDirectoryPicker();
  console.log(res);
};
</script>

圖片圖片

擴展

FileSystemFileHandle

FileSystemFileHandle提供了一些方法可以用來獲取和操作文件

  • getFile:返回一個Promise對象,用于獲取文件;
  • createSyncAccessHandle:返回一個FileSystemSyncAccessHandle對象,用于同步訪問文件;
  • createWritable:返回一個Promise對象,用于創建一個可寫流,用于寫入文件;

FileSystemDirectoryHandle

FileSystemDirectoryHandle對象是一個代表文件系統中的目錄的對象,它同樣提供了方法來獲取和操作目錄

  • entries:返回一個AsyncIterable對象,用于獲取目錄中的所有文件和目錄;
  • keys:返回一個AsyncIterable對象,用于獲取目錄中的所有文件和目錄的名稱;
  • values:返回一個AsyncIterable對象,用于獲取目錄中的所有文件和目錄的FileSystemHandle對象;
  • getFileHandle:返回一個Promise對象,用于獲取目錄中的文件;
  • getDirectoryHandle:返回一個Promise對象,用于獲取目錄中的目錄;
  • removeEntry:返回一個Promise對象,用于刪除目錄中的文件或目錄;
  • resolve:返回一個Promise對象,用于獲取目錄中的文件或目錄;

entries、keys、values這三個方法都是用來獲取目錄中的所有文件和目錄的,它們返回的都是一個AsyncIterable對象,我們可以通過for await...of語法來遍歷它。

開發編輯器

了解完這些知識點,我們就可以來開發一個簡陋網頁版編輯器了,初期只包含打開文件、打開文件夾、查看文件、切換文件

編輯器大概長這樣:

圖片圖片

打開文件夾

const openDir = async () => {
  const res = await window.showDirectoryPicker({});
  const detalAction = async (obj: any) => {
    if (obj.entries) {
      const dirs = obj.entries();
      for await (const entry of dirs) {
        if (entry[1].entries) {
          // 文件夾,遞歸處理
          detalAction(entry[1]);
        } else {
          // 文件
          fileList.value.push({
            name: entry[0],
            path: obj.name,
            fileHandle: entry[1],
          });
        }
      }
    }
  };
  await detalAction(res);
  showCode(fileList.value[0], 0);
  console.log("--fileList--", fileList);
};

這里主要是遞歸處理文件夾,返回一個文件列表

讀取文件內容

const showCode = async (item: any, index: number) => {
  const file = await item.fileHandle.getFile();
  const text = await file.text();
  codeText.value = text;
  currentIndex.value = index;
};

展示文件內容

使用highlight.js來高亮展示代碼

<div class="show_code">
  <pre v-highlight>
        <code class="lang-dart">
            {{ codeText }}
        </code>
   </pre>
</div>

最終效果如下:

圖片圖片

想不到吧,這種功能現在純前端就能夠實現了,當然還可以做的更復雜一點,包括修改保存等功能,保存可以使用showSaveFilePickerAPI,它可以寫入文件,同樣是返回一個promise。感興趣的可以試著完善編輯器的功能。

責任編輯:武曉燕 來源: 前端南玖
相關推薦

2023-09-12 14:44:12

github前端

2020-07-22 14:53:06

Linux系統虛擬文件

2020-09-14 10:50:24

WindowsWSL 2Linux

2011-01-13 14:10:30

Linux文件系統

2020-03-23 21:10:03

BashLinux文件系統

2018-08-24 10:10:25

Linux文件系統技術

2019-09-20 10:04:45

Linux系統虛擬文件

2021-01-18 15:04:53

Linux內核開發者刪除

2021-05-31 07:50:59

Linux文件系統

2013-05-27 14:46:06

文件系統分布式文件系統

2021-04-12 05:44:44

Linux文件系統

2021-06-06 16:55:22

Linux文件系統

2012-09-12 14:40:19

Lustre文件系統

2021-05-31 06:10:14

Btrfs文件系統Linux

2022-07-08 09:00:00

混合云數據存儲IT

2011-03-23 14:00:44

2010-04-30 15:51:48

Unix系統

2010-04-29 10:11:17

Unix系統

2009-04-08 15:36:46

LinuxLustre集群文件系統

2013-03-20 10:35:11

文件系統
點贊
收藏

51CTO技術棧公眾號

日本三级网站在线观看| 久久精品影视大全| 四虎国产精品永远| 久久尤物视频| 毛片精品免费在线观看| 欧美一区二区免费在线观看| 亚洲电影有码| 亚洲永久免费av| 欧美色图亚洲自拍| 国产人妖一区二区三区| 亚洲欧美日韩在线观看a三区| 中文字幕一精品亚洲无线一区| 成人一区二区三区仙踪林| 桃子视频成人app| 一区二区国产盗摄色噜噜| 欧美精品一区二区视频| 精品久久无码中文字幕| 青青草成人在线观看| 久久97久久97精品免视看| 欧美另类z0zx974| 国产精品宾馆| 91精品久久久久久久91蜜桃| 成人在线免费播放视频| 国产盗摄一区二区| 中文字幕中文在线不卡住| 国产一区二区自拍| 国产aⅴ爽av久久久久成人| 丝袜诱惑亚洲看片| 欧美亚洲视频一区二区| 免费无码毛片一区二区app| 日韩一区自拍| 亚洲一级黄色av| 亚洲制服丝袜在线播放| 视频免费一区二区| 欧美精品第1页| 一区二区三区 日韩| 九色porny自拍视频在线观看| 亚洲精品日日夜夜| 亚洲高清视频一区二区| 男男激情在线| 91丝袜高跟美女视频| 国产精品免费观看高清| www.av在线.com| 寂寞少妇一区二区三区| 国产精品免费视频久久久| 欧美亚洲精品天堂| 亚洲国产国产亚洲一二三| 欧美裸体男粗大视频在线观看| а天堂中文在线资源| 久久超碰99| 亚洲色图激情小说| 性高潮久久久久久久| 日韩精品a在线观看91| 亚洲第一区中文字幕| 国产精品麻豆入口| 丁香一区二区| 亚洲电影天堂av| 插我舔内射18免费视频| 国内自拍欧美| 亚洲第一页在线| 国产伦精品一区三区精东| 韩国女主播一区二区三区| 精品日韩欧美在线| 大尺度做爰床戏呻吟舒畅| 国产精品毛片av| 亚洲精品电影网| 日韩片在线观看| 亚洲最大在线| 伊人久久男人天堂| 日韩av网站在线播放| 91精品二区| 九九热这里只有精品免费看| 国产亚洲精品久久久久久打不开| 欧美三区视频| 7777免费精品视频| 无码人妻精品一区二| 免费高清不卡av| 国产专区欧美专区| 亚洲乱码在线观看| 久久综合色鬼综合色| 女女同性女同一区二区三区91| 蜜芽tv福利在线视频| 国产精品网站在线观看| www.国产亚洲| 亚洲伊人av| 欧美精品 日韩| 日本五十肥熟交尾| 精品久久精品| 欧美日本在线视频中文字字幕| 久草国产精品视频| 蜜臀av性久久久久蜜臀av麻豆| 亚洲精品欧美日韩| 日韩美女一级视频| 亚洲欧美偷拍三级| 国产美女三级视频| av日韩一区| 日韩av在线高清| 肉色超薄丝袜脚交69xx图片| 一区二区久久| 成人a在线视频| 日本免费不卡| 一区二区三区欧美日| 91av在线免费播放| 136国产福利精品导航网址应用| 亚洲欧洲在线免费| 久久久久久久久久久网 | 亚洲砖区区免费| av老司机免费在线| 欧美巨大另类极品videosbest| 在线免费播放av| 国产精品97| 国产成人亚洲综合| 亚洲乱熟女一区二区| 国产精品久久久久久亚洲伦| 国产精品333| 日韩精品三级| av免费在线观看网站| 久久综合色天天久久综合图片| 在线一区高清| 性高爱久久久久久久久| 亚洲精品在线免费观看视频| 色www亚洲国产阿娇yao| 先锋影音国产一区| 国内一区二区在线视频观看| 国产黄色在线观看| 欧美视频中文字幕| aa片在线观看视频在线播放| 综合一区av| 成人精品久久av网站| 国产精品一区二区三区四区色| 亚洲 欧美综合在线网络| 污免费在线观看| 色综合狠狠操| 国产一区视频在线| 成人在线免费观看| 91久久精品网| 国产一二三四五区| 久久精品主播| 欧美一区1区三区3区公司| 欧美日韩在线观看首页| 欧美tickling网站挠脚心| 天天鲁一鲁摸一摸爽一爽| 美女高潮久久久| 亚洲蜜桃av| 丰满少妇一区| 中文字幕在线观看亚洲| 中文字幕永久在线观看| 国产欧美视频一区二区| 成人精品小视频| 国产精品亚洲人成在99www| 日韩免费在线观看视频| 毛片在线播放网址| 色999日韩国产欧美一区二区| 中文字幕一区二区三区人妻| 欧美综合二区| 欧美一级片免费观看| 成人在线网站| 日韩在线视频网站| 国产又粗又猛又爽又黄的视频一| 亚洲特黄一级片| 日本一本在线视频| 亚洲先锋成人| 美国av一区二区三区| 欧美性猛交xxx高清大费中文| 亚洲欧洲在线免费| 一级黄色免费看| 亚洲色图.com| 欧美激情一区二区三区p站| 亚洲国产专区| 日韩电影大全在线观看| 国产精品高潮久久| 欧美精品少妇videofree| 人妻一区二区三区四区| 欧美性生交大片免网| 又色又爽的视频| 国产suv精品一区二区883| 欧美a v在线播放| 精品国产乱码| 91精品国产91久久久久青草| 98色花堂精品视频在线观看 | 亚洲av片在线观看| 91久久一区二区| 日韩欧美中文字幕视频| 99精品国产99久久久久久白柏| 精品www久久久久奶水| 婷婷综合视频| 精品久久精品久久| 国语自产精品视频在线看抢先版结局| 九九久久久久99精品| 天堂av在线资源| 欧美精品乱码久久久久久| 国产在线视频99| 国产欧美一二三区| 亚洲色偷偷色噜噜狠狠99网 | 日韩欧美亚洲另类| 亚洲人成免费| 亚洲日本一区二区三区在线不卡| 免费一区二区三区在线视频| 人妖精品videosex性欧美| 欧美成人hd| 亚洲人成网站免费播放| 亚洲成a人片在线| 欧美伊人久久久久久久久影院| 久久国产一级片| 国产精品视频九色porn| 男男做爰猛烈叫床爽爽小说 | 小处雏高清一区二区三区| 精品免费日产一区一区三区免费| 欧美伊人亚洲伊人色综合动图| 4p变态网欧美系列| 色操视频在线| 色综合亚洲精品激情狠狠| 亚洲欧美综合一区二区| 欧美一级在线观看| 亚洲中文字幕在线一区| 日韩欧美亚洲综合| 日韩av在线天堂| 一区二区日韩电影| 国产精品夜夜夜爽阿娇| 国产婷婷色一区二区三区四区| 免费看毛片的网站| 国产99精品国产| 在线一区二区不卡| 免费亚洲电影在线| 农村妇女精品一二区| 在线免费观看欧美| avav在线播放| 欧美视频在线观看| 妞干网这里只有精品| 成人国产精品一级毛片视频| 欧美黑人3p| 欧美在线导航| 国产精品久久精品国产 | 人妻熟人中文字幕一区二区| 97久久精品人人做人人爽| 亚洲熟妇一区二区| 国产精品996| 日本泡妞xxxx免费视频软件| 国产精品原创巨作av| 黄色三级视频片| 视频一区视频二区在线观看| 茄子视频成人免费观看| 亚洲女人av| 青青视频在线播放| 国产亚洲精品v| 欧美aⅴ在线观看| 久久精品成人| 日韩中文字幕组| 日本三级亚洲精品| 色噜噜狠狠一区二区| 老汉av免费一区二区三区 | 亚洲mmav| 国产精品自产拍在线观| 日韩黄色三级| 亚洲最大av在线| 综合激情五月婷婷| 精品无人乱码一区二区三区的优势| 91精品国产自产精品男人的天堂 | 国产农村妇女毛片精品| 欧美一区二区福利在线| 亚洲卡一卡二卡三| 日韩高清欧美高清| 国产粉嫩一区二区三区在线观看 | 在线亚洲一区| 久久久精品在线视频| 人人超碰91尤物精品国产| 欧美一级特黄aaa| 国产成人在线色| 国产精品无码永久免费不卡| 久久蜜臀中文字幕| 91香蕉国产视频| 一区二区三区四区高清精品免费观看 | 亚洲专区第一页| 日韩女优毛片在线| 污污网站在线免费观看| 在线性视频日韩欧美| 不卡的在线视频| 伊人精品久久| 欧美激情论坛| 欧美韩日一区| www.好吊操| 日韩制服丝袜av| 精品国产鲁一鲁一区二区三区| 国产·精品毛片| 成人免费看aa片| 最新欧美精品一区二区三区| 国产无码精品视频| 在线精品视频一区二区| 精品黑人一区二区三区国语馆| 日韩精品视频中文在线观看| 蜜桃视频在线免费| 九九热99久久久国产盗摄| 国内精彩免费自拍视频在线观看网址 | 国产精品久久国产三级国电话系列| 杨幂一区二区三区免费看视频| 一区精品视频| 亚洲欧美成人综合| 黄色三级视频在线播放| 91免费版在线| 18岁成人毛片| 在线国产亚洲欧美| 国产成人精品亚洲精品色欲| 亚洲免费视频一区二区| 99热国产在线| 国产精品美乳在线观看| 国产精品久av福利在线观看| 亚洲欧美丝袜| 性色一区二区| 韩国三级在线看| 中文字幕日韩av资源站| 亚洲精品男人的天堂| 日韩精品一区二区三区在线播放| yourporn在线观看中文站| 久久久视频在线| 国产精品久久久久久久久久久久久久久| 久久国产精品99久久久久久丝袜| 亚州av乱码久久精品蜜桃| 欧美黄网站在线观看| 懂色av噜噜一区二区三区av| 一本在线免费视频| 色天使久久综合网天天| 少妇荡乳情欲办公室456视频| 久热精品视频在线免费观看| 亚洲精品国产嫩草在线观看| 国产亚洲情侣一区二区无| 亚洲国产一区二区三区在线播放| 久草福利视频在线| 91免费观看国产| 日韩av男人天堂| 精品国产成人系列| 色综合999| 亚洲一区二区三区香蕉| 91麻豆国产自产在线观看亚洲| 欧美精品久久久久久久多人混战| 一级久久久久久| 亚洲欧美一区二区激情| 永久免费毛片在线播放| 国产一区二区在线观看免费播放| 国产精品www.| 午夜视频在线免费看| 自拍偷拍国产精品| 一二三区中文字幕| 日韩天堂在线视频| 成人黄色理论片| 日本黄xxxxxxxxx100| 国产一区二区三区四区五区入口 | 欧美亚洲在线视频| 欧美日韩一区二区三区四区不卡| 国产女主播自拍| 成人18视频日本| 日韩欧美不卡视频| 亚洲国产天堂久久国产91| 1区2区在线| 精品一区二区三区视频日产| 国产欧美日本| 丰满少妇高潮一区二区| 在线影视一区二区三区| 91se在线| 114国产精品久久免费观看| 欧美日本一区二区高清播放视频| 先锋资源在线视频| 亚洲一区二区三区视频在线 | 91视频一区二区三区| 久久久久久少妇| 亚洲色图校园春色| 国产成人精品一区二区三区视频| 一区二区三区在线视频111| 久久国产夜色精品鲁鲁99| 麻豆视频在线免费看| 精品国产乱码久久久久久1区2区| 三级中文字幕在线观看| 日本一区免费在线观看| 精品综合免费视频观看| 九九热国产精品视频| 日韩精品高清在线| 国产精品久久乐| 黄色片免费在线观看视频| 99久久久免费精品国产一区二区| 无码人妻久久一区二区三区 | 日韩亚洲欧美一区| sm捆绑调教国产免费网站在线观看 | 国产日韩精品一区二区三区在线| 一区二区三区在线免费观看视频| 成年无码av片在线| 天天做夜夜做人人爱精品| 蜜臀av免费观看| 亚洲成人av一区二区三区| 国产精品久久一区二区三区不卡| 成人妇女免费播放久久久| 在线高清一区| 91免费在线看片| 亚洲成人久久电影| 日韩一区精品| 免费观看亚洲视频| 国产欧美日韩久久| 性猛交富婆╳xxx乱大交天津| 国产91|九色| 国内精品美女在线观看| 在线视频第一页| 欧美mv日韩mv国产网站app|