← Întrebări frecvente

Întrebările frecvente sunt scrise în engleză și neerlandeză; sunt afișate în engleză.

Întrebări frecvente

Explorer (Files app)

FAQ › EUZOS Desktop › Explorer · Nederlands

What is it?

The explorer is the Files app of EUZOS Desktop ("USB sticks, OneDrive and SharePoint: browse, open, copy"). It shows four kinds of places in one window:

  • My files: your own folder on this PC, encrypted inside your profile directory (only after login);
  • USB sticks and external disks (FAT32 and exFAT; hot-plug, with Eject);
  • Microsoft 365: OneDrive, Shared with me and SharePoint, via Microsoft Graph, with the same Microsoft sign-in as the mail app.

Nothing is stored unencrypted on the PC: a file opened from a stick or OneDrive lives only in memory while its window is open. The explorer is also the shared Save as dialog for the browser, Chromium downloads and mail attachments.

The code is in kernel/src/explorer/ (kernel side) and libs/ui/src/apps/explorer.rs (drawing and hit testing).

How do I…?

How do I open the explorer?

Open Files in the desktop's mega menu. From the console (or over SSH) explorer open opens the window too.

How do I see my USB sticks?

Insert the stick; it appears on the left under USB sticks with its volume label and free space. In the console, explorer lists every readable stick (storage <n> partition at <lba>: <file system> <free> of <total> MB free), and explorer scan makes the explorer look again. The boot stick is never shown and never written.

How do I safely remove a stick?

Click Eject next to the stick (or right-click the stick › Eject), or type explorer eject <storage>. The explorer writes out FAT and bitmap, clears the exFAT VolumeDirty flag and sends SYNCHRONIZE CACHE; then it says "<name> can be removed". An ejected stick only comes back after you pull it out and insert it again. On reboot and logout all sticks are written out anyway.

How do I use My files?

Log in; My files is at the top of the sidebar, with the default folders Documents, Pictures, Downloads and Desktop (created the first time, shown in your language). A quota bar shows "x GB of y GB used" (red above 90 %). Without login, or without a profile directory, the place is simply absent. In the console: explorer mine [path] lists a folder.

How do I use Company files?

On a PC with a device key that the admin registered (pckey create, pc-register), logged in with an account of the organisation, Company files appears below My files. It lists the shares of the File servers of the organisation that the account may see; inside a share it works like My files. "read only" shares cannot be changed; deleting moves to the share's recycle bin on the server. See File server.

How do I sign in to OneDrive or SharePoint?

Choose OneDrive (or Shared with me / SharePoint) in the sidebar and press Sign in. The window shows a code and an address (Microsoft's device-code flow): enter the code on your phone or another computer. It is the same sign-in as the Email app (microsoft::primary(), the first account). If \EOS\FW\MSAPP.TXT is missing, the window says that signing in has not been set up on this PC. See Mail for the shared Microsoft session.

How do I copy, move, rename or delete?

Use the toolbar (New folder, Rename, Delete, Copy, Cut, Paste, Refresh) or the context menu (right-click, or long press with a finger). Paste works between every pair of places (stick ↔ stick, stick ↔ OneDrive, My files ↔ anything), also for folders, in chunks so a large file is never wholly in memory. A copy in the same folder gets "name (2).ext"; an existing name gives the question Replace?. Dragging with the mouse is not supported (yet).

How do I open a file?

Double-click, or select and press Enter. Images open in a viewer, text files in a text window where you can edit and Save, HTML in the browser (about:bestand?<n>, in memory only). PDF and other kinds give "cannot be opened".

Why can't I see my external hard disk?

NTFS (many external hard disks) and FAT16 are only identified ("cannot be read yet"). Disks with 4096-byte sectors, disks above 2 TB and logical partitions inside an extended MBR partition are not shown (yet).

Why does explorer ls show "…" instead of names?

In a production build the console never prints file names (the log stays on the stick, rule K-11). Names are only printed in a test build.

Details

The window

  • Left: the places: My files, USB sticks (label, free space, Eject), Microsoft 365 (OneDrive, Shared with me, SharePoint: followed sites and /sites?search=*, then their document libraries).
  • Top: the path as breadcrumbs with Up, and a search field for the current folder (just typing starts a search; Esc clears).
  • Toolbar: New folder, Rename, Delete, Copy, Cut, Paste, Refresh; on the right List/Tiles.
  • Contents: list (name, size, modified, kind) or tiles; folders first.
  • Status line: count, file system, free space, selection, and a progress bar while copying.
  • Keys: arrows select, Enter opens, Backspace goes up, Esc closes a menu or clears the selection.

Opening files (limits per kind)

KindOpens inLargest file
Image (PNG, JPEG, GIF, WebP, BMP, …)viewer, scaled to the window48 MB (explorer::MAX_OPEN)
Text (txt, md, csv, json, xml, code)text window (read, edit, Save)euzos_ui::apps::viewer::MAX_TEXT (docs: 4 MB)
HTMLthe browser (about:bestand?<n>)3 MB
PDF and the rest"cannot be opened"—

An HTML file from the explorer may not give the browser about: commands.

Save as (shared component)

crate::explorer::save_as(name, content) opens a Save as window from any thread: the explorer with only folders active, a name field, Cancel/Save. It starts in My files › Downloads when a profile directory is open. The content stays in memory until it is saved. Used by the browser's downloads (name from Content-Disposition or the path), Chromium downloads without a profile directory, and mail attachments.

Copying and moving

In chunks: 1 MB per chunk on a stick, 4 MB per OneDrive download chunk, upload chunks of 10 × 320 KiB. Moving on the same volume or drive only changes the entry (one transaction in My files: Dir::rename); otherwise copy, then delete the source. Folders are copied at most 32 deep and deleted at most 64 deep.

USB sticks

A disk counts as the boot stick (never shown) if stick uses it, if a partition has the boot partition GUID, if a FAT32 partition has the label EUZOS, or if there is a kernel in \EOS\. Internal disks (AHCI, NVMe) never appear: the explorer only uses USB disks. FAT32 and exFAT are read and written; every value from a stick is checked before use (fuzz-tested), and writing happens in the order that best survives power loss (data, then FAT/bitmap, then the new entry, then remove the old one).

My files

bestanden/ in the encrypted profile directory of the logged-in user (crate::profile_dir, see Storage). Next to it apps/ (app data such as Chromium) stays hidden. At logout the directory is closed and the place disappears. Limits: a file up to 64 MiB, 4,096 names per folder, no modification date (yet). A full quota gives "There is not enough space"; deleting is always possible.

OneDrive and SharePoint

Graph requests from libs/onedrive with the shared Microsoft session (crate::microsoft::graph: token, refresh on 401, Retry-After). Downloads in chunks via @microsoft.graph.downloadUrl with Range; uploads up to 4 MB in one PUT, larger with an upload session (Content-Range); those pre-signed addresses get no token. New folders use conflictBehavior: fail. Tokens are only in RAM; logout wipes them (microsoft::wipe, explorer::logged_out, also the clipboard). OneDrive times (UTC) are shown in Central European time.

Safe names

euzos_storage::safe_name replaces control characters, writing-direction overrides (e.g. U+202E), zero-width characters and lone surrogates by U+FFFD. A new name may not contain / \ : * ? " < > | or control characters and may not end in a dot or space.

Reference

Console commands

CommandArgumentsWhat it does
explorer—List the USB sticks the explorer sees: storage number, partition LBA, file system, free/total MB, read-only, unreadable
explorer scan—Look for sticks again (usb::attached, usb::scan_if_needed)
explorer ls<storage> [dir/sub]List a folder on stick <storage> (max 60 entries; names only in a test build)
explorer test<storage>Self-test on a stick in the folder EUZOS-proef: write, read back 5 MB, rename, copy, delete, write out. Hidden aliases: explorer trial (an older help text) and legacy explorer proef
explorer mine[path]List a folder in My files (logged in, profile directory open). Legacy alias: explorer mijn
explorer mine test—Self-test in My files (write, read back, rename, copy "(2)", delete, cut to a subfolder, and to/from the first stick if there is one). Hidden aliases: trial and legacy proef
explorer open—Open the explorer window
explorer save-test—Open the Save as dialog with a small test file. Hidden aliases: explorer save-trial (an older help text) and legacy explorer opslaan-proef
explorer eject<storage>Eject a stick safely. Legacy alias: explorer uitwerpen

help lists the same names as this table (test, mine, save-test; see kernel/src/explorer/mod.rs::command).

Functions and modules

Function / moduleRole
crate::explorer::commandThe explorer console command
crate::explorer::save_as(name, content)The shared Save as dialog (any thread)
crate::explorer::task / take / tickSlow work (stick, network) in its own thread; outcomes back via a queue to crate::screen
crate::explorer::logged_outWipe tokens, clipboard and pending outcomes at logout
crate::explorer::name_error_textThe "may not …" message for a bad new name
crate::explorer::LocationA folder: Usb { disk, lba, path }, Graph(Folder), Mine { path }
crate::explorer::usb::{places, attached, scan_if_needed, eject, flush_all, with_volume}Sticks: hot-plug, volumes, ejecting, writing out
crate::explorer::source::{list, read_all, write, write_all, new_folder, rename, delete, paste, child}The same actions for every kind of place
crate::explorer::graph::{account, list, new_folder, rename, delete, move_to, download_address, download_chunk, upload}OneDrive/SharePoint via Graph
crate::explorer::viewer::max_forLargest file per kind to open
euzos_ui::apps::explorerDrawing and hit testing of the window, Save as, menus, dialogs
libs/exfat, libs/fat (lfn.rs), libs/storageexFAT, FAT32 with long names, partitions, safe names, download names
libs/onedriveGraph paths, bodies and responses for OneDrive/SharePoint

Config files

FileKeyValuesMeaning
\EOS\FW\MSAPP.TXT(Entra app client id and tenant)—Needed for Microsoft sign-in (OneDrive, SharePoint, mail); without it signing in is not set up. Format: see Mail and kernel/src/microsoft.rs

Protocol messages and formats (Microsoft Graph)

Paths from libs/onedrive/src/lib.rs (Folder::path, upload_path, …) and the methods from kernel/src/explorer/graph.rs:

ActionGraph request
My OneDrive rootGET /me/drive/root/children?$select=…
Another drive's root / a folderGET /drives/{drive}/root/children, GET /drives/{drive}/items/{id}/children
Shared with meGET /me/drive/sharedWithMe (items with remoteItem: the owner's item)
SharePoint sitesGET /me/followedSites and GET /sites?search=*&$top=100, then GET /sites/{id}/drives
DownloadGET the item for @microsoft.graph.downloadUrl, then GET that URL with Range (4 MB chunks, no token)
Upload ≤ 4 MBPUT /me/drive/root:/<name>:/content?@microsoft.graph.conflictBehavior=fail (or under a drive item)
Upload > 4 MBPOST …:/<name>:/createUploadSession, then PUT chunks with Content-Range to the upload URL (no token; DELETE it on abort)
Rename, move (same drive)PATCH /drives/{drive}/items/{id} with {"name": …} / parent reference
DeleteDELETE /drives/{drive}/items/{id}
New folderPOST …/children with conflictBehavior: fail

See also

  • docs/EXPLORER.md: the full design
  • docs/USER-STORAGE.md: the profile directory behind My files
  • docs/MAIL.md: the shared Microsoft session
  • FAQ: Storage, Browser, Mail