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

純前端也可以訪問文件系統(tǒng)!

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

前言

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

圖片

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

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

showOpenFilePicker

用來選擇文件

語法

showOpenFilePicker()

參數(shù)

  • 「options」:(可選)包含以下屬性
  • multiple:布爾值,默認為false。為true表示允許用戶選擇多個文件
  • excludeAcceptAllOption:布爾值,默認為false。默認情況下,文件選擇器帶有一個允許用戶選擇所有類型文件的過濾選項(展開于文件類型選項中)。設(shè)置此選項為 true 以使該過濾選項不可用。
  • types:表示允許選擇的文件類型的數(shù)組

返回值

返回一個promise對象,會兌現(xiàn)一個包含 FileSystemFileHandle 對象的 Array 數(shù)組。

體驗

<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

用來選擇目錄

語法

屬于瀏覽器全局方法,直接調(diào)用即可

showDirectoryPicker()

參數(shù)

  • 「options」:(可選)包含以下屬性
  • multiple:布爾值,默認為false。為true表示允許用戶選擇多個文件
  • excludeAcceptAllOption:布爾值,默認為false。默認情況下,文件選擇器帶有一個允許用戶選擇所有類型文件的過濾選項(展開于文件類型選項中)。設(shè)置此選項為 true 以使該過濾選項不可用。
  • types:表示允許選擇的文件類型的數(shù)組

返回值

返回一個promise對象,會兌現(xiàn)一個包含 FileSystemFileHandle 對象的 Array 數(shù)組。

體驗

<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對象,用于創(chuàng)建一個可寫流,用于寫入文件;

FileSystemDirectoryHandle

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

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

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

開發(fā)編輯器

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

編輯器大概長這樣:

打開文件夾

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);
};

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

讀取文件內(nèi)容

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

展示文件內(nèi)容

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

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

最終效果如下:

想不到吧,這種功能現(xiàn)在純前端就能夠?qū)崿F(xiàn)了,當(dāng)然還可以做的更復(fù)雜一點,包括修改保存等功能,保存可以使用showSaveFilePickerAPI,它可以寫入文件,同樣是返回一個promise。感興趣的可以試著完善編輯器的功能。

責(zé)任編輯:華軒 來源: 前端南玖
相關(guān)推薦

2023-10-26 07:06:19

前端文件系統(tǒng)

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2020-09-14 10:50:24

WindowsWSL 2Linux

2011-01-13 14:10:30

Linux文件系統(tǒng)

2020-03-23 21:10:03

BashLinux文件系統(tǒng)

2018-08-24 10:10:25

Linux文件系統(tǒng)技術(shù)

2019-09-20 10:04:45

Linux系統(tǒng)虛擬文件

2021-01-18 15:04:53

Linux內(nèi)核開發(fā)者刪除

2021-04-12 05:44:44

Linux文件系統(tǒng)

2021-06-06 16:55:22

Linux文件系統(tǒng)

2012-09-12 14:40:19

Lustre文件系統(tǒng)

2021-05-31 07:50:59

Linux文件系統(tǒng)

2013-05-27 14:46:06

文件系統(tǒng)分布式文件系統(tǒng)

2021-05-31 06:10:14

Btrfs文件系統(tǒng)Linux

2022-07-08 09:00:00

混合云數(shù)據(jù)存儲IT

2011-03-23 14:00:44

2010-04-29 10:11:17

Unix系統(tǒng)

2010-04-30 15:51:48

Unix系統(tǒng)

2020-01-15 09:10:13

LinuxWindowsmacOS

2013-03-20 10:35:11

文件系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲精品成人久久久| 国产精品1024久久| 亚洲日本中文字幕| 亚洲免费一级视频| 精品自拍一区| 99精品久久99久久久久| 国产精品久久精品| 国产探花在线播放| 偷窥自拍亚洲色图精选| 欧美日韩精品欧美日韩精品一| 国产又大又长又粗又黄| 色婷婷av一区二区三区之红樱桃| 久久夜色精品| 欧美高清在线播放| 国产sm调教视频| 天堂精品在线视频| 欧美午夜不卡视频| 久久成人福利视频| 欧美18hd| 久久久亚洲国产美女国产盗摄 | 99欧美精品| 亚洲综合免费观看高清完整版在线| 免费看污久久久| 精品人妻午夜一区二区三区四区| 久久综合九色综合欧美狠狠| 久久国产精品电影| 99久久久无码国产精品衣服| 97久久综合精品久久久综合| 欧美日韩精品一区二区在线播放| 内射国产内射夫妻免费频道| 超碰在线观看免费版| 国产视频不卡一区| 国内不卡一区二区三区| 精品国产乱码一区二区三| 日本一不卡视频| 97不卡在线视频| 免费看一级一片| 国产精品99视频| 亚洲午夜av电影| 亚洲男人在线天堂| 国产成人aa在线观看网站站| 91精品在线观看入口| 亚州精品一二三区| 欧美片第一页| 亚洲一区二区毛片| 国产精品亚洲综合一区在线观看| 91av在线精品| 国产一级特黄毛片| 亚洲五月综合| 久久九九精品99国产精品| 国产人妻大战黑人20p| 欧美黄色影院| 日韩av在线网| 三叶草欧洲码在线| 色婷婷av一区二区三区丝袜美腿| 亚洲第一页在线| 日本久久久久久久久久| 日韩精品免费视频一区二区三区| 欧美欧美欧美欧美| 91亚洲精品久久久蜜桃借种| 亚洲欧洲专区| 67194成人在线观看| 91视频福利网| 9l亚洲国产成人精品一区二三| 精品欧美乱码久久久久久1区2区| 日本wwwxx| 国产区精品视频在线观看豆花| 欧美r级在线观看| 国产 xxxx| 狠狠狠狠狠狠狠| 国产无限制自拍| 中文字幕一区二区三区精华液| 欧美另类极品| 99久久久无码国产精品不卡| 亚洲欧洲日韩精品| 久青草国产97香蕉在线视频| www.色就是色| 日本国产欧美| 欧美日韩电影一区| 污污视频在线免费| 9l视频自拍九色9l视频成人| 精品国产乱码91久久久久久网站| 国产又粗又长又爽| 国产乱码精品一区二区亚洲| 日韩在线激情视频| 欧美在线视频第一页| 亚洲人成久久| 国产精品第100页| 国产精品毛片久久久久久久av| 国产一区二区免费视频| 国产一区二区高清不卡| 麻豆国产在线播放| 综合久久久久久| 免费观看美女裸体网站| 欧亚一区二区| 91精品欧美福利在线观看| 91久久精品一区二区三| 国产树林野战在线播放| 热色播在线视频| 欧美日韩在线三区| 97人妻精品一区二区三区免费| 天海翼精品一区二区三区| 社区色欧美激情 | 国产乡下妇女做爰视频| 热久久一区二区| 成人女人免费毛片| 国产高清视频免费最新在线| 亚洲精品成人精品456| 国产在线青青草| 激情不卡一区二区三区视频在线 | 成人国产在线看| 亚洲欧洲自拍| 欧美一区二区三区免费在线看| 懂色av粉嫩av蜜乳av| 国产国产精品| 欧美最近摘花xxxx摘花| 国内老熟妇对白hdxxxx| 久久精品视频免费| 日本精品久久久久久久久久| 黄色精品视频| 亚洲精品国产综合区久久久久久久| 最近中文字幕免费| 亚洲国产婷婷| 91欧美日韩一区| 国产高清一级毛片在线不卡| 亚洲不卡在线观看| 在线免费黄色小视频| 日本不卡免费一区| 91精品国产一区| 国产精品伦理一区| 中文在线一区二区| 欧美精品99久久| 日本精品在线播放| 综合国产在线视频| 免费黄色av片| 91香蕉视频mp4| 777久久精品一区二区三区无码| 国产情侣一区二区三区| 日韩毛片中文字幕| 日韩免费一级片| 国产精品99久久久久久久女警| 亚洲ai欧洲av| 亚洲成人短视频| 精品一区二区三区电影| 国产成人无码精品| 成人夜色视频网站在线观看| 26uuu成人| 四虎精品一区二区免费| 99视频精品全国免费| 亚洲欧洲xxxx| 黄色片中文字幕| 99精品视频中文字幕| 800av在线免费观看| av成人男女| 高清欧美性猛交xxxx| 成人激情四射网| 亚洲一区二区在线视频| 丰满人妻一区二区三区53视频| 欧美aaaa视频| 成人日韩av在线| 理论片午午伦夜理片在线播放| 欧美日韩一区二区三区免费看| 我想看黄色大片| 蜜桃精品视频在线观看| 亚洲欧洲日韩综合二区| 先锋影音一区二区| 欧美成人手机在线| www.黄色小说.com| 亚洲电影第三页| 久久国产劲爆∧v内射| 在线欧美亚洲| 蜜桃狠狠色伊人亚洲综合网站| xx欧美视频| 伊人伊成久久人综合网小说| 91tv国产成人福利| 亚洲女与黑人做爰| 极品白嫩少妇无套内谢| 亚洲理伦在线| 欧美日韩综合精品| 成人在线免费av| 九九热最新视频//这里只有精品| 亚洲av少妇一区二区在线观看| 亚洲国产中文字幕在线视频综合| 艳妇乳肉亭妇荡乳av| 久久午夜电影| 日本不卡一区二区三区四区| h视频久久久| 日本欧美在线视频| 日韩毛片久久久| 精品1区2区在线观看| 国产在线观看黄色| 国产精品无码永久免费888| www.日本久久| 免费国产精品视频| bt7086福利一区国产| 苍井空浴缸大战猛男120分钟| 大胆日韩av| 国产精品有限公司| 人人鲁人人莫人人爱精品| 日韩亚洲综合在线| 韩国av免费在线| 欧美色手机在线观看| 久久久久亚洲AV| 日本一区二区不卡视频| 日本成人在线免费| 日韩和欧美一区二区| 国产激情在线看| 国产传媒欧美日韩成人精品大片| 亚洲一区二区三区乱码aⅴ蜜桃女| 涩涩在线视频| 欧美成人中文字幕| 国产综合在线观看| 欧美大片在线观看| 亚洲在线观看av| 精品久久久久久亚洲精品| 99鲁鲁精品一区二区三区| 91免费观看在线| 性一交一黄一片| 日本中文字幕一区| 亚洲熟妇av日韩熟妇在线| 亚洲成av人电影| 日韩.欧美.亚洲| 日本国产精品| 97久久天天综合色天天综合色hd| 99久久亚洲国产日韩美女| 97成人在线视频| 久草免费在线色站| 久久精品亚洲精品| 成年人视频免费在线观看| 精品亚洲永久免费精品 | 麻豆精品在线播放| 丰满爆乳一区二区三区| 亚洲午夜电影| 特大黑人娇小亚洲女mp4| 成人写真视频| 欧美三级华人主播| 自拍亚洲一区| 久久久久久久久久久久久久久久av| 久久精品国产亚洲AV无码麻豆| 天堂久久一区二区三区| 国产资源在线视频| 黄色成人在线网站| 日本黄xxxxxxxxx100| 久久理论电影| 亚洲在线观看一区| 日韩国产欧美一区二区| 日本婷婷久久久久久久久一区二区| 老司机精品视频在线播放| caoporn国产精品免费公开| 亚洲综合伊人| 91免费国产网站| www欧美在线观看| 国产日韩在线播放| 欧美成人高清视频在线观看| 国产精品影片在线观看| 欧美aaa视频| 国产欧美日韩精品在线观看| 91天天综合| 成人久久久久久| 亚洲18在线| 999日本视频| 97品白浆高清久久久久久 | 精品三级av在线导航| 国产精品一区二区三区在线| 都市激情久久| 国产专区一区二区| 中文字幕中文字幕精品| 日韩精品伦理第一区| 欧洲福利电影| 乱子伦一区二区| 精品福利电影| 在线观看亚洲成人| 日本少妇激情视频| 欧美日韩国产激情| www.久久精品视频| 欧美日韩一级片在线观看| 国产精品伊人久久| 欧美成人精品二区三区99精品| 黄色一级a毛片| 亚洲美女又黄又爽在线观看| 岛国在线大片| 九九热最新视频//这里只有精品| 免费一二一二在线视频| 国产精品成人免费视频| www.久久久.com| 精品国产电影| 日本不卡免费一区| 日韩一级免费看| 日韩中文字幕1| 日日夜夜精品视频免费观看 | 91久久精品网| 国产又粗又猛又黄又爽| 亚洲成人免费网站| av播放在线观看| 免费观看日韩电影| 久久久久久久香蕉| 久久精品国语| 国产精品探花在线播放| 不卡在线视频中文字幕| 日本精品久久久久中文| 一区二区三区高清在线| 国产寡妇亲子伦一区二区三区四区| 欧美日韩黄色一区二区| 色屁屁草草影院ccyycom| 中日韩午夜理伦电影免费| 波多一区二区| 国产剧情久久久久久| 老牛精品亚洲成av人片| 一区二区免费在线观看| 国产欧美日韩一级| 野花视频免费在线观看| 欧美极品美女视频| 日本三级午夜理伦三级三| 欧美日本在线视频| 日本福利午夜视频在线| 色综合视频网站| 欧美激情啪啪| 日韩电影免费观看在| 伊人精品成人久久综合软件| 亚洲免费av一区| 91麻豆福利精品推荐| 欧美色图一区二区| 欧美日韩高清一区二区不卡| 日韩精品视频无播放器在线看 | 日韩一级完整毛片| 97电影在线看视频| 96精品视频在线| 福利片一区二区| 大桥未久一区二区| 久久精品久久精品| 内射毛片内射国产夫妻| 色香蕉久久蜜桃| 亚洲日本在线播放| 久久理论片午夜琪琪电影网| 国产精品成人**免费视频| 日韩偷拍一区二区| 99精品免费| 动漫美女无遮挡免费| 一区二区在线看| 国产内射老熟女aaaa∵| 在线观看久久久久久| 色综合一本到久久亚洲91| 蜜桃导航-精品导航| 国产精品久久久一区二区| 久久人妻少妇嫩草av无码专区| 亚洲激情六月丁香| 99国产精品久久久久久久成人| 精品国产一区二区三区久久狼黑人 | 国产精品视屏| 日韩精品综合在线| 成人免费视频国产在线观看| 久久久久99精品成人片毛片| 精品日韩欧美一区二区| 国产嫩草在线视频| 国内外成人免费视频| 亚洲视频大全| 亚洲熟妇无码av| 日本高清免费不卡视频| 高清av在线| 成人午夜在线观看| 希岛爱理av一区二区三区| 亚洲欧美日韩网站| 一区二区三区国产精品| 天天操天天干天天| 欧美性做爰毛片| 国产影视精品一区二区三区| 精品久久久久久中文字幕2017| 日本一区二区动态图| 国产精品毛片久久久久久久av| 成人成人成人在线视频| 免费a v网站| 岛国av一区二区| 黄视频在线播放| 国产精品亚洲网站| 亚洲综合五月| 性欧美18—19sex性高清| 欧美日韩视频免费播放| av电影在线网| 97人人模人人爽人人少妇 | 99久久激情视频| 欧美国产精品久久| 精品国产999久久久免费| 久久乐国产精品| 成人在线电影在线观看视频| 91 视频免费观看| 亚洲第一在线综合网站| 国产小视频在线| 国产专区欧美专区| 日韩午夜精品| 老司机精品免费视频| 欧美成人免费网站| 成人做爰视频www网站小优视频| 一区二区三区四区在线视频| 大白屁股一区二区视频| 波多野结衣网站| 欧美激情视频一区| 成人精品亚洲| 久久久久久婷婷| 欧美日韩色一区| 麻豆蜜桃在线观看|