- file:/// ļauj pārlūkprogrammā pārvietoties pa lokālo failu sistēmu Windows y android.
- Failu sistēmas piekļuves API piedāvā uzlabotas lasīšanas un rakstīšanas iespējas lokālajos failos un direktorijās.
- Drošība balstās uz nepārprotamām lietotāju atļaujām un skaidru kontroli pār to, kuri maršruti ir pieejami.
- Ir polyfill un bibliotēkas, kas apvieno šo API ar klasiskajām metodēm, ja nav vietējā atbalsta.

Pārlūkprogrammas izmantošana kā neliela failu pārlūka ir iespējama, un, pareizi lietojot, tā var būt ārkārtīgi noderīga. No vienkārša lokāla dokumenta atvēršanas ar file:/// līdz darbam ar jaudīgo failu sistēmas piekļuves APIMūsdienās modernās pārlūkprogrammas piedāvā daudz vairāk iespēju, nekā mēs parasti izmantojam.
Šajā rokasgrāmatā mēs soli pa solim aplūkosim, kā atvērt lokālos failus programmā interneta pārlūks izmantojot file:/// pārlūkprogrammās Chrome, Edge un FirefoxKā pārvērst savu pārlūkprogrammu par vienkāršu failu pārlūku operētājsistēmās Windows un Android un kā izstrādātāji var spert soli tālāk, izmantojot failu sistēmas piekļuves API, lai lasītu, rakstītu un pārvaldītu lokālos failus un mapes no tīmekļa lietojumprogrammas.
Ko īsti nozīmē atvērt lokālos failus ar file:///
Kad rakstāt maršrutu, kas sākas ar file:/// pārlūkprogrammas adreses joslā, Jūs norādāt pārlūkprogrammai, lai tā piekļūtu lokālajai failu sistēmai, nevis internetam.Tas ir, lai atvērtu kaut ko, kas atrodas jūsu ierīcē: cieto disku, iekšējo atmiņu vai SD karti.
Šī īpašā URL shēma (file:///) Tas darbojas līdzīgi kā rakstīt C: operētājsistēmā Windows vai / iekšā Linux un macOSTas ir vienkārši pielāgots pārlūkprogrammas loģikai. Turpmāk redzēsiet sava veida mapju un failu sarakstu bez jebkādām detaļām: nosaukumiem, izmēriem, modificēšanas datuma un maz kas cits.
Protams, tas jāpatur prātā Pārlūkprogrammas šos lokālos maršrutus apstrādā ar daudziem drošības ierobežojumiem.Piemēram, tīmekļa vietne, kuru apmeklējat no interneta, pēc noklusējuma nevar brīvi lasīt jūsu lokālos failus tikai tāpēc, ka atverat URL ar file:///Vienmēr ir nepieciešama nepārprotama lietotāja žesta vai atļaujas izrādīšana.
Pārlūkprogrammas izmantošana kā failu pārlūks operētājsistēmā Android
Daudzos Android tālruņos nav iekļauts pienācīgs ražotāja izstrādāts failu pārvaldnieks vai arī iepriekš instalētais ir diezgan ierobežots. Šādos gadījumos Izmantojot Chrome, Edge vai citu uz Chromium balstītu pārlūkprogrammu kā pagaidu pārlūkprogrammu, jūs varat izkļūt no šīs problēmas..
Triks ir ļoti vienkāršs: Atveriet savu Chromium pārlūkprogrammu (Chrome, Edge, Brave utt.) un ierakstiet adreses joslā fails: /// sdcard /Android identificē glabāšana galvenais iekšējais kā sdcard, ļoti līdzīgi tam, kā Windows izmanto C: galvenajam diskam.
Atverot šo adresi, pārlūkprogramma parasti lūgs atļauju lasīt iekšējo atmiņu. Kad būsiet piešķīris šo atļauju, parādīsies indekss, kurā būs redzamas jūsu iekšējās atmiņas saknes mapes.No turienes jūs varat ieiet un iziet no mapēm tieši tā, it kā pārlūkotu vietni ar saitēm.
Katrā mapē redzēsiet gan apakšmapes, gan failus. Faili tiek parādīti ar pilnu nosaukumu, ieskaitot paplašinājumu, lielumu un pēdējās modificēšanas datumu.Ir uzskaitīti arī šādi: slēptās mapes, kas operētājsistēmā Android parasti sākas ar punktu, piemēram .nomedia vai citas līdzīgas.
Lai gan saraksts ir ļoti spartiski, Lielākā daļa mūsdienu pārlūkprogrammu var tieši atvērt daudzu veidu failus, pieskaroties tiem.Attēli, video, audio, teksta dokumenti utt. Nav sīktēlu vai priekšskatījumu, bet vienkārši noklikšķinot uz faila nosaukuma, pārlūkprogramma mēģinās to parādīt vai atskaņot.
Pārvērtiet Chrome un Edge par nelielu failu pārlūku savā datorā
Galddatoros, gan operētājsistēmās Windows, gan citās, Varat arī izmantot Chrome, Edge un citas Chromium pārlūkprogrammas, lai pārvietotos pa lokālajiem diskiem, izmantojot file:///Princips ir tāds pats kā Android ierīcēs, taču ceļš ir atšķirīgs.
Ja izmantojat operētājsistēmu Windows, primārais disks visbiežāk ir C:. Šādā gadījumā ierakstiet adreses joslā fails:///C: un nospiediet taustiņu EnterPārlūkprogramma parādīs šī diska saknes saturu: mapes, piemēram, Windows, Program Files, Usuarios, Uc
Ja jums ir vairāk disku vai nodalījumu, Varat aizstāt burtu URL adresē ar atbilstošo burtu.. Piemēram, file:///D: citam albumam vai file:///E: piemiņai USB ka tas tika piemontēts ar šo burtu. Pēc tam noklikšķiniet uz mapēm, lai pārvietotos uz priekšu, un izmantojiet pārlūkprogrammas pogu Atpakaļ, lai atgrieztos.
Tāpat kā operētājsistēmā Android, Katrā mapē redzēsiet failus un apakšmapes ar redzamu izmēru, modificēšanas datumu un paplašinājumu.Tas neģenerē sīktēlus vai skaistas ikonas, bet ar to pietiek, lai atrastu konkrētu failu vai ātri iegūtu pārskatu par direktoriju struktūru.
Lielākā daļa Chromium pārlūkprogrammu Tie ļauj tieši atvērt multivides failus un pat dažus dokumentu formātus. Vienkārši noklikšķinot uz tiem. Attēli, video, audio vai vienkārši teksta faili cilnē tiek parādīti diezgan dabiski.
Atveriet lokālos failus pārlūkprogrammās Chrome un Firefox, manuāli neievadot file:///
Papildus maršrutu rakstīšanai ar file:///Pārlūkprogrammās ir iekļauti īsceļi, kas īpaši paredzēti lokālo failu ātrai atvēršanai. Piemēram, pārlūkprogrammā Chrome varat izmantot īsinājumtaustiņu kombināciju Ctrl + O. (Control + O), kad pārlūkprogrammas logs ir aktīvs.
Nospiežot šo saīsni, Atveras operētājsistēmas tipiskais dialoglodziņš “Atvērt failu”.Vienkārši atrodiet vajadzīgo failu, atlasiet to un apstipriniet. Chrome to ielādēs pašreizējā cilnē vai jaunā cilnē atkarībā no faila veida un jūsu preferencēm.
Firefox piedāvā vairākas iespējas. No vienas puses, Varat doties uz galveno izvēlni un atlasīt opciju "Atvērt failu...".kas dara tieši to pašu: parāda sistēmas failu atlases logu. Varat arī tieši ierakstīt adreses joslā šādu ceļu: file:///// lai pārlūkprogramma startētu, parādot C diska saturu operētājsistēmā Windows.
Ar jebkuru no šīm metodēm, Praktiskais rezultāts ir tāds, ka pārlūkprogramma kļūst par lokālu failu skatītāju.Tas var jums palīdzēt, kad Windows Explorer Tas sasalst, ja rodas problēmas ar parasto failu pārvaldnieku vai vienkārši, ja vēlaties atvērt tāda veida dokumentu, ar kuru pārlūkprogramma tiek galā īpaši labi.
Failu sistēmas piekļuves API: lēciens no skatītāja uz redaktoru
Viss, ko līdz šim esam redzējuši, ir balstīts uz file:/// un failu atvēršanas dialoglodziņu "manuālu" izmantošanu, tas ir, uz lietām, ko lietotājs veic manuāli. Taču jau kādu laiku Chromium pārlūkprogrammās ir iekļauta failu sistēmas piekļuves API., kas tīmekļa lietojumprogrammām sniedz iespēju strādāt ar lokālajiem failiem daudz modernākā veidā.
Šis API ļauj vietnei pēc jūsu atļaujas pieprasīšanas veikt šādas darbības: Lasīt un saglabāt izmaiņas tieši failos un mapēs jūsu ierīcēPateicoties tam, nopietnus teksta redaktorus un IDE var izveidot tieši no pārlūkprogrammas. programmēšana, fotoattēlu un video redaktorus, projektu vadītājus un daudzus citus rīkus, kurus iepriekš bija jēga izstrādāt tikai kā datora lietojumprogrammas.
Ir svarīgi nejaukt šo moderno API ar vecākām vai novecojušām. Tas nav tas pats, kas saskarne FileSystem ne failu un direktoriju ierakstu API, ne vecā specifikācija “Failu API: direktoriji un sistēma”, kurā tika ierosināti citi mehānismi failu hierarhiju un smilškastes krātuves apgabalu apstrādei.
Pašreizējā failu sistēmas piekļuves API Tas ir izstrādāts ar īpašu rūpību drošības, atļauju un lietotāja pieredzes ziņā.Lai atvērtu faila vai direktorija atlasītāju, vienmēr ir nepieciešamas skaidras darbības (piemēram, noklikšķināšana uz pogas), un lietotājam vienmēr ir skaidrs, kuriem precīziem ceļiem viņš piešķir piekļuvi.
Runājot par saderību, API darbojas lielākajā daļā Chromium pārlūkprogrammu operētājsistēmās Windows, macOS, Linux, ChromeOS un Android.Ievērojams izņēmums ir Brave, kur joprojām ir nepieciešams aktivizēt karodziņu, lai to izmantotu. Citās pārlūkprogrammās, kas nav Chromium, tas var nebūt ieviests vai tikt ieviests tikai daļēji.
Pārbaudiet, vai pārlūkprogramma atbalsta failu sistēmas piekļuves API
Kā izstrādātājam, pirms mēģināt to izmantot, vispirms ir jānoskaidro, vai lietotāja pārlūkprogramma atbalsta šo API. Vienkāršākais veids ir pārbaudīt, vai globālajā objektā pastāv atbilstošās failu atlases metodes.piemēram, pārbaudot, vai showOpenFilePicker ir pieejams window (o self darbinieka gadījumā).
Tipiskais modelis sastāv no kaut kā šāda: “Ja “showOpenFilePicker” ir iestatīts uz “self”, tad es varu izmantot API; pretējā gadījumā man ir jāizmanto alternatīva metode.”Tas ļauj ieviest hibrīdrisinājumus, kur, ja ir atbalsts, tiek izmantotas API priekšrocības, bet, ja atbalsta nav, tiek izmantotas tradicionālās metodes, piemēram, failu augšupielādes veidlapas.
Tā ir arī laba ideja Pārbaudiet mērķa pārlūkprogrammās un dažādās OSJo, lai gan bāze ir Chromium, daži ražotāji var iespējot vai atspējot noteiktas funkcijas drošības, politikas vai veiktspējas apsvērumu dēļ.
Pirmais piemērs: lokāla faila atvēršana no tīmekļa lietotnes
Viens no kanoniskajiem piemēriem šī API izpratnei ir viena faila teksta redaktors, kas ļauj atvērt, modificēt un saglabāt dokumentuTam nav jābūt iespaidīgam: ja vien tas lasa un raksta vienkāršu tekstu, tas jau ilustrē, kā tas darbojas.
Ieejas punkts šeit ir metode window.showOpenFilePicker(). Šo metodi var izsaukt tikai drošā kontekstā (HTTPS) un reaģējot uz lietotāja žestu.Tas parāda lietotājam iebūvētu dialoglodziņu, kurā var izvēlēties failu. Pēc atlasīšanas tas atgriež rokturu masīvu, parasti ar vienu FileSystemFileHandle.
Šis turis saglabā visu informāciju un metodes, kas nepieciešamas darbam ar izvēlēto failu. Ieteicams saglabāt atsauci uz turi, jo to vēlāk izmantosiet, lai lasītu failu, saglabātu izmaiņas vai veiktu jebkuru citu darbību.Kamēr vien jūs saglabājat šo apzīmētāju un lietotājs nav atsaucis atļaujas, jūsu lietotne varēs mijiedarboties ar failu.
Kad jums ir FileSystemFileHandle, jūs varat iegūt objektu File īsts aicinājums handle.getFile()Šis objekts File Tas satur faila datus kā blobu, un tā saturam var piekļūt, izmantojot tādas metodes kā text(), arrayBuffer(), stream() o slice() ja nepieciešama nejauša piekļuve.
Praksē vienkāršam teksta redaktoram parasti ir lietot file.text() lai iegūtu pilnu saturu kā virkniun ievietojiet šo tekstu <textarea> lai lietotājs to varētu rediģēt. Ir svarīgi atzīmēt, ka objekts File Tas zaudē spēku, ja fails diskā tiek modificēts ar citiem līdzekļiem, un tādā gadījumā ieteicams to izsaukt vēlreiz. getFile().
Saglabāt izmaiņas: rakstīt lokālajā failu sistēmā
Lai saglabātu lietotāja rediģēto, API piedāvā divus tipiskus ceļus: "vienkārša" saglabāšana, kas pārraksta sākotnējo failu, un "Saglabāt kā", kas izveido jaunu failuBūtiskā atšķirība ir tā, vai jums jau ir mērķa faila turis vai arī lietotājam ir jāizvēlas jauns ceļš un nosaukums.
Ja vēlaties izveidot jaunu failu vai saglabāt tā kopiju ar citu nosaukumu, jums vajadzētu izmantot showSaveFilePicker()Šī metode atver failu atlasītāju saglabātajā režīmā, ļaujot lietotājam norādīt nosaukumu, mapi un paplašinājumu. Varat nodrošināt opcijas, lai ieteiktu failu tipus, piemēram, norādot, ka tas ir teksta dokuments un ka vēlamais paplašinājums ir . .txt.
Svarīga detaļa ir tā Tev vajadzētu piezvanīt showSaveFilePicker() tieši reaģējot uz lietotāja žestu (piemēram, noklikšķinot uz pogas “Saglabāt”) un neaizkavējiet to, kamēr veicat apjomīgu apstrādi. Ja veicat visu priekšdarbu un pēc tam ar kavēšanos mēģināt atvērt dialoglodziņu, pārlūkprogramma var parādīt drošības kļūdu, jo tā vairs neuzskata, ka jūs “apstrādājat lietotāja žestu”.
Kad jums ir FileSystemFileHandle norādot uz failu, kurā vēlaties saglabāt, Nākamais solis ir izveidot FileSystemWritableFileStream izmantojot fileHandle.createWritable()Šī straume tiks izmantota datu rakstīšanai. Ja pārlūkprogramma konstatēs, ka jums vēl nav rakstīšanas atļaujas, tā parādīs atļauju dialoglodziņu; ja lietotājs to noliedz, izsaukums radīs izņēmumu.
Ar straumi rokās, Jūs vienkārši piezvanāt writable.write(contenido) ar auklu, Blob vai BufferSourceJūs pat varat tieši ievietot HTTP atbildes pamattekstu straumē ar response.body.pipeTo(writable)Kad esat pabeidzis rakstīt, pārraidi noslēdzat ar writable.close(), kas ir brīdis, kad izmaiņas tiek konsolidētas diskā.
Kamēr straume ir atvērta, varat izmantot arī tādas metodes kā seek() o truncate() par pārvietojiet rakstīšanas rādītāju uz noteiktu pozīciju vai mainiet faila lielumuTaču ir svarīgi atcerēties, ka izmaiņas netiek pastāvīgi piemērotas, kamēr straume netiek aizvērta.
Ieteikt lietotājam faila nosaukumu un mājas mapi
API rūpējas arī par lietotāja pieredzi sistēmas dialoglodziņos. Piemēram, Izsaucot funkciju, varat norādīt ieteikto faila nosaukumu. showSaveFilePicker()Tas ļauj lietotājam redzēt kaut ko aprakstošāku, piemēram, "Jauns dokuments.txt", nevis vispārīgu "Bez nosaukuma".
Līdzīgi, Ir iespējams ieteikt sākotnējo mapi, kurā sākas failu atlasītājs.Tas tiek darīts, nododot īpašību startIn kad tu zvanīsi showSaveFilePicker(), showOpenFilePicker() o showDirectoryPicker()Vērtības var būt virknes, piemēram desktop, documents, downloads, music, pictures o videos, kas atbilst standarta sistēmas atrašanās vietām.
Turklāt jums ir iespēja izmantot kā vērtību startIn failu vai direktoriju pārvaldnieks, kas jums jau irŠādā gadījumā dialoglodziņš tiek atvērts tieši mapē, kurā atrodas šis turis, kas ir ļoti ērti, lai atsāktu pēdējās sesijas darba kontekstu.
Ja jūsu lietojumprogramma apstrādā dažāda veida failus (piemēram, teksta dokumentus un iegultos attēlus), Katram dialoglodziņa veidam var definēt dažādus ID.Tādā veidā pārlūkprogramma katram ID neatkarīgi atcerēsies pēdējo izmantoto mapi, un jūs nejauksiet dokumentu ceļus ar attēlu ceļiem.
Atcerieties nesenos failus un mapes, izmantojot IndexedDB
Viena no failu sistēmas piekļuves priekšrocībām ir tā apstrādātāju serializējamība. Tas nozīmē, ka jūs varat uzglabāt FileSystemFileHandle y FileSystemDirectoryHandle IndexedDB un izgūt tos nākamajās sesijās, vienmēr ievērojot atļauju politiku.
Pateicoties tam, tīmekļa lietojumprogrammas var piedāvāt tipiskas darbvirsmas funkcijas, piemēram, nesen izmantoto failu saraksti, pēdējā projekta atkārtota atvēršana vai iepriekšējās darba mapes atjaunošanaJums tikai jāsaglabā rokturi pārlūkprogrammas datubāzē un jānolasa tie, kad lietotne tiek startēta.
Kad izgūstat saglabātu turi, Nevajag pieņemt, ka atļaujas paliks spēkā.Pārlūkprogramma var izlemt, ka autorizācija ir jāpieprasa atkārtoti, piemēram, tāpēc, ka ir pagājis laiks vai pēdējā cilne no šī avota ir aizvērta. Tāpēc ieteicams, lai jūsu kods to pārbaudītu.
Šīs pārbaudes veikšanai API ietver metodes queryPermission() y requestPermission() gan failu, gan direktoriju apstrādātājosVispirms jūs jautājat, kādā statusā ir atļauja, un, ja tā nav "piešķirta", varat to pieprasīt vēlreiz no lietotāja, opcijās norādot, vai jums ir nepieciešama tikai lasīšanas vai lasīšanas un rakstīšanas atļauja.
Laba prakse ir apvienot abus soļus vienā palīdzības funkcijā Ja ir norādīts turis un režīms (tikai lasīšanas vai lasīšanas/rakstīšanas), tam jāpārbauda, vai atļauja jau ir piešķirta, un, ja nē, jāparāda atbilstošais uzvednes ziņojums. Tas samazina dialoglodziņu skaitu un padara lietošanu vienmērīgāku.
Atveriet un pārlūkojiet veselus direktorijus no pārlūkprogrammas
Papildus atsevišķiem failiem API ļauj strādāt ar veselām mapēm. ar showDirectoryPicker() lietotājs var izvēlēties visu direktorijuun pieteikums saņem FileSystemDirectoryHandle kas nodrošina piekļuvi visiem tā elementiem.
Pēc noklusējuma jums būs lasīšanas atļauja failiem šajā direktorijā, lai gan, ja jums ir nepieciešams tajos arī rakstīt Jūs varat pieprasīt lasīšanas un rakstīšanas piekļuvi, nododot { mode: 'readwrite' } zvanot showDirectoryPicker()No šī brīža jūsu lietotne var uzskaitīt un manipulēt ar saturu saskaņā ar piešķirto atļauju.
Lai pārvietotos pa mapi, Jūs varat atkārtot asinhroni dirHandle.values()kas pa vienam atgriež tajā esošos elementus: failus un apakšdirektorijus. Katram ierakstam ir īpašība kind kas norāda, vai tas ir "file" vai "directory".
Ja jums ir nepieciešams piekļūt informācijai par katru failu, piemēram, tā lielumam, varat piezvanīt entry.getFile(). Šādos gadījumos ieteicams veikt mērījumus paralēli, izmantojot Promise.all() vai līdzīgas metodes, nevis rīkojoties pa vienam stingri secīgā veidā, kas var būt lēnāk.
To var izdarīt arī no direktorija izveidot jaunas mapes vai failus ar getDirectoryHandle() y getFileHandle()Opcijās varat norādīt, vai vēlaties, lai tie tiktu izveidoti, ja tie vēl nepastāv. Piemēram, varat iestatīt projekta struktūru, piemēram, "Mans projekts / Kods / Piezīmes.txt", tieši no tīmekļa lietojumprogrammas.
Failu pārvaldība: dzēšana, pārdēvēšana un pārvietošana
API neaprobežojas tikai ar lasīšanu un rakstīšanu. Tas arī ļauj dzēst failus un mapes no direktorija, izmantojot removeEntry() pār a FileSystemDirectoryHandleJa tā ir mape, dzēšanu var padarīt rekursīvu, lai tajā tiktu iekļautas visas tās apakšmapes un faili.
Ja direktorijā skatīšanās vietā vēlaties tieši rīkoties ar faila vai mapes turi, Dažas pārlūkprogrammas piedāvā šo metodi remove() en FileSystemFileHandle y FileSystemDirectoryHandleTādā veidā jūs noņemat šo elementu, neatsaucoties uz tā nosaukumu vecāku direktorijā.
Organizatoriskām darbībām, piemēram, vienumu pārdēvēšanai vai pārvietošanai uz citu mapi, Ir metode move() saskarnē FileSystemHandleVarat tieši nodot jaunu nosaukumu, mērķa direktoriju vai direktoriju plus jauno nosaukumu, lai vienlaikus pārvietotu un pārdēvētu.
Tomēr saderībai ir nianses: - atbalsts move() Tas ir vairāk piemērots failiem avota privātajā failu sistēmā (OPFS).un joprojām var būt aiz karodziņiem vai nebūt ieviests visos scenārijos vai direktorijās noteiktās pārlūkprogrammās.
Velciet un nometiet failus un mapes tīmeklī
Failu sistēmas piekļuves API ļoti labi integrējas ar HTML vilkšanas un nomešanas sistēmu. Kad lietotājs velk failus vai mapes no operētājsistēmas uz tīmekļa lapuPārlūkprogramma izveido elementus DataTransferItem līdzstrādnieki.
Ar metodes palīdzību DataTransferItem.getAsFileSystemHandle(), jūs varat dabūt FileSystemFileHandle vai elements ir fails vai FileSystemDirectoryHandle ja tas ir katalogsTādējādi lietotne var ļaut lietotājam vilkt un nomest visu fotoattēlu mapi un strādāt tieši ar tās saturu.
Jums jāpatur prātā, ka vilkšanas un nomešanas kontekstā DataTransferItem.kind Gan failiem, gan mapēm vienmēr būs "fails".Atšķirību starp failu un direktoriju var noteikt, aplūkojot īpašību kind del FileSystemHandle kas tev atdod getAsFileSystemHandle()kas atšķirs "file" y "directory".
Privātā avota failu sistēma (OPFS) un optimizēta piekļuve
Papildus piekļuvei lietotāja failiem un mapēm Chromium pārlūkprogrammas piedāvā arī izcelsmes privātā failu sistēma (OPFS)Šī ir katrai tīmekļa vietnei veltīta krātuves vieta, kurai lietotājs nevar tieši piekļūt no operētājsistēmas.
Praksē tas nozīmē, ka Lai gan pārlūkprogramma šos datus iekšēji saglabā diskā, lietotājs tos neatradīs kā "parastus" failus nevienā vecā mapē.Tā var būt datubāze, iepakotas datnes vai jebkura iekšēja struktūra, ko pārlūkprogramma uzskata par piemērotu.
No API varat piekļūt šīs privātās sistēmas saknei, izmantojot navigator.storage.getDirectory(), kas atgriež FileSystemDirectoryHandle. No turienes jūs varat izveidot failus un direktorijus, tos lasīt, tajos rakstīt, pārdēvēt vai dzēst tāpat kā lokālās failu sistēmas elementus.Bet zinot, ka tie ir izolēti un paredzēti tikai jūsu tīmekļa lietojumprogrammai.
Paaugstinātākām veiktspējas vajadzībām, Chromium ietver īpašu failu tipu ar optimizētu sinhrono piekļuvi. Caur fileHandle.createSyncAccessHandle() (pieejams strādājošo valodā), jūs varat iegūt turi, kas nodrošina sinhronu un ekskluzīvu lasīšanu un rakstīšanu, kas ir noderīgi ļoti intensīviem vai latentuma jutīgiem lietošanas gadījumiem.
Turētāja iegūšana joprojām ir asinhrona, bet, kad tas ir iegūts, Lasīšanas un rakstīšanas operācijas tiek veiktas kā tiešie izsaukumi, manipulējot ar baitu buferiem.Tas ir ļoti tuvu vietējās lietojumprogrammas veiktspējai, taču neizejot no tīmekļa vides un saglabājot izolāciju no privātās pirmkoda sistēmas.
Polyfills un alternatīvas, ja nav vietējā atbalsta
Lai gan failu sistēmas piekļuves API piedāvā daudzas iespējas, Ne visas pārlūkprogrammas to vēl atbalstaNav iespējams izveidot pilnīgu polyfill, kas replicē visas tā iespējas, galvenokārt tāpēc, ka nav iespējams droši simulēt piekļuvi vietējai failu sistēmai bez pašas pārlūkprogrammas sadarbības.
Tomēr dažas daļas var aptuveni novērtēt. Atdarināt showOpenFilePicker() vienkāršs <input type="file">, kas parāda failu atlases lodziņu un ļauj lietotājam izvēlēties vienu vai vairākus failus.
Kaut kas līdzīgs notiek arī ar taupīšanu. Atdarināt showSaveFilePicker() bieži tiek izmantota saite <a download="nombre"> Noklikšķinot uz tā, tiek uzsākta no JavaScript ģenerēta Blob lejupielāde. Tas ļauj "saglabāt" vietnes ģenerētos datus, lai gan tas nepiedāvā iespēju pārrakstīt esošos failus.
Runājot par visu direktoriju atlasi, nestandarta atribūts tradicionāli ir izmantots webkitdirectory en <input type="file">kas ļauj izvēlēties mapi un saņemt tajā esošo failu sarakstu. Tas nav universāls risinājums, kā arī nav tik spēcīgs kā showDirectoryPicker()bet tas aptver dažus gadījumus.
Lai apvienotu šīs pieejas, Ir tādas grāmatnīcas kā pārlūkprogrammas piekļuves sistēmai (browser-fs-access) Viņi cenšas izmantot moderno API, kad vien tā ir pieejama, un, ja nē, viņi automātiski atgriežas pie šīm labākajām alternatīvām.Tādā veidā izstrādātājs raksta relatīvi vienveidīgu kodu, un bibliotēka rūpējas par pielāgošanos videi.
Drošība, atļaujas un lietotāju kontrole
Visa šī jauda nāk līdzi arī pienākumiem, un pārlūkprogrammu komandas to ļoti labi apzinās. Failu sistēmas piekļuves API dizains ir balstīts uz diviem principiem: lietotāja kontroli un caurspīdīgumu.Nav iespējams, ka tīmekļa vietne varētu slepeni nolasīt pusi cietā diska.
Kad lietotājs atver failu, izmantojot atlases lodziņus (lai lasītu vai saglabātu jaunu failu), Tieši šis žests piešķir lasīšanas vai rakstīšanas atļauju konkrētajam failam vai mapei.Ja lietotājs pārdomā un atceļ dialogu, vietne neko nesaņem un līdz ar to neiegūst piekļuvi.
Lai saglabātu jaunu failu, noklikšķiniet uz lodziņa “Saglabāt” Tas ne tikai ļauj izvēlēties nosaukumu un ceļu, bet arī kalpo kā rakstīšanas atļaujas piešķiršana jaunizveidotajam failam.Loģika ir tāda pati kā gadiem ilgi izmantota tādos elementos kā <input type="file">bet paplašināts ar vairākām iespējām.
Kad tīmekļa lietojumprogramma vēlas modificēt jau esošu failu, Tas nevar vienkārši to izdarīt; pārlūkprogramma var parādīt īpašu paziņojumu, lūdzot atļauju tajā rakstīt.Šo dialoglodziņu var atvērt tikai pēc lietotāja darbības, piemēram, nospiežot pogu “Saglabāt izmaiņas”.
Ja lietotājs nolemj nepiešķirt šo rakstīšanas atļauju, Tīmekļa vietnei ir jāpiedāvā kāda alternatīva: kopijas lejupielāde, saglabāšana mākonī, darbs OPFS vai cits līdzīgs mehānisms.Ideja ir tāda, ka lietotājam vienmēr ir pēdējais vārds par to, kas tiek aiztikts viņa lokālajā sistēmā.
Runājot par caurspīdīgumu, Pārlūkprogrammas adreses joslā parāda ikonu, ja vietnei ir piekļuve lokālajiem failiem.Ja lietotājs noklikšķina uz šīs ikonas, viņš redzēs to failu vai mapju sarakstu, kurām lapai ir piekļuve konkrētajā brīdī, un varēs atsaukt atļaujas jebkurā laikā.
Atļaujas nav pastāvīgas. Parasti lapa saglabā iespēju turpināt saglabāt failus tikai tik ilgi, kamēr ir atvērta vismaz viena cilne no šī avota.Kad visi faili vai direktoriji ir aizvērti, pārlūkprogramma var uzskatīt sesiju par beigušos, un nākamajā lietošanas reizē būs nepieciešams vēlreiz pieprasīt atļauju šiem failiem vai direktorijiem.
Apvienojot shēmu file:///, lai atvērtu konkrētus resursus, tastatūras īsceļi lai augšupielādētu lokālos failus un failu sistēmas piekļuves API dziļai integrācijai Tas padara pārlūkprogrammu par daudzpusīgāku rīku gan lietotājiem, gan izstrādātājiem.ļaujot ātri apskatīt diskā saglabātu video vai rediģēt veselus projektus, neizejot no tīmekļa vides.
Kaislīgs rakstnieks par baitu pasauli un tehnoloģiju kopumā. Man patīk dalīties savās zināšanās rakstot, un tieši to es darīšu šajā emuārā, parādot visu interesantāko informāciju par sīkrīkiem, programmatūru, aparatūru, tehnoloģiju tendencēm un daudz ko citu. Mans mērķis ir palīdzēt jums vienkāršā un izklaidējošā veidā orientēties digitālajā pasaulē.