PREVIEW IN PLACE
Inspect a file before opening another application.
Status: Production
The desktop Inspector follows the active selection. It presents metadata for every supported selection and adds bounded previews or actions when the file type is recognized.
More preview space and shared tools
From 0.3.77, the disclosure arrow beside the filename collapses file details without removing any metadata or actions. Show all file details restores them. Details use a compact two-column layout when space permits; the choice is remembered. Drag the Inspector farther left or use Expand inspector; resizing the window keeps a file-list area available.
- Find and line numbers
Use the search icon or Ctrl+F with focus in a read-only preview. Enter and Shift+Enter move between highlighted matches; Escape closes find. The adjacent line-number icon remembers whether source gutters are shown. Source, Markdown, HTML, CSV, JSON and text-based PDFs support search, capped at 5,000 matches. CSV searches displayed rows and JSON searches the bounded tree; PDF search covers up to 500 pages and does not OCR image-only scans.
- HTML viewports and zoom
Choose panel width, Desktop (1280 px), or Mobile (390 px), then use zoom percentage, minus/plus, Fit width or Reset to 100%. Device sizes change the layout viewport; they do not emulate a phone browser. Manual zoom is 25–400%; Fit may use a smaller scale to fit the panel.
- Local HTML styles
Preview can read up to eight UTF-8 CSS stylesheets of at most 256 KiB each from the HTML folder or its subfolders. Traversal, links/reparse points, absolute paths and network URLs are rejected; CSS imports, URLs, fonts and image loads remain blocked. Page JavaScript is not executed, so script-driven pages can remain incomplete. Unavailable or blocked styles produce a notice.
- PDF tools
A locally bundled PDF.js viewer adds page navigation, selectable text, find, zoom percentage, Fit width and reset. Fonts, CMaps and decoder resources are local, not CDN dependencies. Canvas rendering is bounded to 16 megapixels. Encrypted, damaged or unsupported PDFs can show a retry/error message; use the associated application when a document requires unsupported features.
- CSV and JSON
Choose Preview for a sortable CSV table or collapsible JSON tree; Source remains available. CSV parsing respects quoted fields and multiline values, with up to 10,000 loaded rows, 200 columns and 1,000 displayed data rows. Sorting applies to loaded rows. JSON is bounded to 5,000 nodes, 300 children per branch and depth 30; notices identify omitted content.
- Loading and retry
Text, image and PDF previews show loading or useful failure states. Retry reopens the selected preview without changing the file. Unsupported formats retain metadata and an associated-application option.
Code, text, Markdown, Unity, and HTML
Supported source and text files can show a bounded text preview with syntax highlighting, filename, type, size, modified time, path, and line count where available.
Recognized text and source extensions in RFile 0.3.79 include TXT, Markdown, LOG, JSON, JavaScript, TypeScript, TSX, Rust, TOML, XML, CSV, INI, BAT, PowerShell, YAML, Unity META and PREFAB, HTML, CSS, Python, C, C++, headers, and C#.
Large or unsupported files fall back to metadata or a truncated preview rather than forcing the entire file into the interface.
- Source or Preview
For HTML, Markdown, CSV and JSON files, use the Source/Preview switch beside the Inspector title. Source keeps the original markup visible, while Preview renders the document without changing the file. From 0.3.76, your Source/Preview choice is remembered across supported files and app restarts. Plain text uses Text without erasing that preference. Edit is a separate, explicit per-file action; leaving Edit returns to your chosen reading mode.
- Rendered Markdown
Preview mode supports headings, ordered and unordered lists, tables, task lists, block quotes, links, inline code, and fenced code blocks.
- Unity source
Unity .meta and .prefab files appear as bounded YAML-like source. RFile does not load them into Unity or execute their content.
- HTML Source or Preview
HTML and HTM files initially use escaped Source mode, then follow your saved reading choice. Preview renders a sanitized, bounded document in an opaque-origin iframe that fills the available preview height, rather than stopping at 300 pixels. Scroll inside the document to continue reading; file details and any truncation notice retain their own space. Page scripts, forms, popups, embedded frames, same-origin access and network requests remain blocked. A nonce-restricted RFile search helper is the only script admitted; it has no filesystem or IPC access.
- Edit
For an eligible local text or Markdown file, choose Edit beside the Inspector title. Save, Cancel, and Ctrl+S are available, and an unsaved draft remains associated with that exact path while you decide what to do.
- Safe save boundary
Editing accepts supported UTF-8 and UTF-16 text up to 4 MiB, preserves its encoding and LF, CRLF, or CR newline style, and publishes the replacement atomically. A read-only, linked, reparse, binary, truncated, oversized, or unsupported file is not made editable.
- Local preview
Markdown rendering stays inside the desktop Inspector. Raw HTML and scripts are ignored rather than executed, unsafe link targets are blocked, and images stay unloaded to prevent hidden local or network requests.
Images, video, and audio
- Images
PNG, JPG, JPEG, GIF, WebP, BMP, ICO, SVG, and AVIF files can render a visual preview with file metadata. Use the image toolbar or wheel/pinch gestures to inspect details with zoom and pan; see Image zoom and pan below.
- Select image text
A local PNG, JPG, JPEG, WebP, or BMP preview offers Select text. Recognition starts only when requested and runs with bundled offline models on this computer. Drag across recognized lines and press Ctrl+C, choose Copy all, or choose Hide text to return to the normal preview.
- Image editing copies
Rotate by 90 degrees, flip horizontally or vertically, and cycle app/checkerboard/white/black backgrounds. Crop lets you drag a rectangle over a local image. Save copy creates a new PNG beside the source, with a unique name and no overwrite, limited to 16 megapixels and 32 MiB. Viewing changes alone never alter a file. Starting OCR resets rotation, flips and crop to keep text selection aligned. Cloud previews have viewing transforms but no local Save copy.
- Video review tools
Capture video frame saves a new bounded PNG beside the video using the current decoder. Cycle subtitles chooses available embedded tracks and Off; browser decoders often expose fewer tracks than VLC. Press A–B to set the start, seek to an end at least 0.2 seconds later, press again to loop, and press once more to clear. Loops reset on file changes. Hovering the timeline shows a cached thumbnail for browser-decodable video; VLC-only formats show time without a thumbnail. These tools preserve hold-to-play-at-2×.
- Video
Eligible local MP4, WebM, MOV, M4V, MKV, AVI, WMV, MPG, MPEG, M2TS, MTS, large MPEG-TS, FLV, OGV, 3GP, 3G2, VOB, and ASF files can expose Inspector playback. MP4, M4V, WebM, and MOV first use locally bundled ArtPlayer 5.4.0 with the embedded Windows/WebView media element when reported playable. When Use VLC in Inspector is on, actual decode failure falls forward once to an on-demand compatible 64-bit VLC 3 runtime and other eligible containers use VLC directly; when it is off or unavailable, unsupported formats can open in the default player.
- ArtPlayer-backed browser media
For browser-decodable video, locally bundled, MIT-licensed ArtPlayer 5.4.0 owns the HTML-media and decoder lifecycle. It is loaded only when browser playback is needed and is never fetched from a CDN. RFile supplies one consistent ArtPlayer-inspired accessible control surface for both engines using its existing semantic buttons and ranges; ArtPlayer's generated DOM controls are not the visible transport. Formats that need VLC retain RFile's secure, supervised native VLC child-window backend.
- Responsive opening shell
The player shell appears with the selection instead of waiting for decoding and reuses a Windows Shell thumbnail already cached by FileView when one is available. Video thumbnail lookups are cache-only, so RFile does not start a competing Shell video decode. From 0.3.77 the automatic video area reserves its full available size immediately instead of expanding after metadata loads. The shell and cached poster stay responsive while the selected engine prepares; they do not promise an instant decoded frame.
- Fit or Fill
Fit is the default and preserves the complete decoded frame. Fill center-crops the edges to cover the picture area and never stretches either axis. Fill can remove viewport bars by cropping, but bars authored inside the source may remain. Native dimensions and the reserved control height are measured separately so RFile does not add avoidable pillarboxing.
- Shared transport and keys
ArtPlayer/WebView and native VLC playback retain RFile's play/pause, seek, time, volume, mute, playback-state, playback-speed, picture-sizing, and full-screen behavior. Space or K toggles playback, arrows seek five seconds, M toggles mute, F toggles full screen, and Escape exits full screen.
- Playback speed and hold-for-2×
Choose 0.25×, 0.5×, 0.75×, 1×, 1.25×, 1.5×, 1.75×, or 2×. Holding the primary mouse or pen button on the picture for 350 ms temporarily uses 2× and temporarily plays a paused video. An ordinary release or cancellation while the window remains visible restores the accepted base speed and prior playing or paused state. Hiding or minimizing RFile, or changing selection, cancels the boost, restores the selected speed, pauses playback, and never resumes it automatically. Touch-promoted input never activates the native VLC 2× gesture.
- Idle-fading controls
VLC's separate Windows child surface cannot safely sit behind ordinary DOM overlays, so RFile's matching ArtPlayer-inspired controls use a reserved 54 px control area, or 86 px with wrapped controls in a narrow Inspector. During active playback the buttons fade after 1.5 seconds without picture interaction while a thin progress spine remains. Picture or native-video movement, transport hover, keyboard focus or shortcuts, pause, opening, buffering, seeking, menus, and hold-for-2× keep or reveal them.
- On-demand VLC handoff
RFile does not keep a background VLC helper or decoder running. When VLC is needed, the backend publishes exact window- and session-scoped status immediately, keeps the native surface hidden and muted until selected-media output is ready, and retains early Play or seek intent only for that selection.
- Latest selection wins
Rapid video selections pass through a per-window serialized admission gate and stale opens stop before publication. Before admitting a replacement, RFile requests an immediate native-window hide, waits at most 200 ms for its acknowledgement, and then hard-retires the obsolete helper. This bounded synchronous step can add a small replacement delay, but prevents stale surfaces, decoders, and helper processes from accumulating.
- Paused by default
Selecting a video prepares its first frame but never starts audible playback. Choose Play explicitly. Hiding or minimizing RFile pauses either engine, and restoring the window never resumes automatically.
- Full screen
Full screen moves focus into the player, contains Tab navigation, restores focus on exit, and preserves the active engine's position and paused/playing state across the transition.
- Audio
MP3, WAV, FLAC, OGG, and M4A files can expose playback controls and, where present and supported, track information.
Image zoom and pan
Supported local raster and SVG images and eligible Google Drive image previews use the same viewing controls. Zooming and panning only change the view; they do not edit or overwrite the file. Google Drive's existing verified-download and 32 MiB image-preview limit remain unchanged.
- Zoom into a detail
Scroll over the image or pinch on a trackpad or touch screen to zoom around that point. The minus and plus buttons change the current scale by a factor of 1.25. The range extends from 10%, or a smaller fitted scale when needed, to 800%.
- Move around the image
Drag with the primary pointer or one touch to pan when the enlarged image extends beyond the viewport. Panning is bounded at the image edges, so a smaller image stays centered rather than disappearing outside the preview.
- Fit and actual size
Fit keeps the whole image visible and follows Inspector resizing without enlarging a small image beyond 100%. The 100% button shows one image pixel per CSS pixel; Windows display scaling still applies. Double-click from Fit opens a closer view around the clicked point at twice the fitted scale or 100%, whichever is larger; double-click from a zoomed view returns to Fit.
- Keyboard controls
With focus inside the image preview, + or = zooms in, - or _ zooms out, and 0 returns to Fit. Arrow keys pan by 40 CSS pixels when the image viewport itself has focus, not a toolbar button. Space and Enter activate focused toolbar buttons normally. These are local viewing shortcuts, not new file-list shortcuts, and modified system shortcuts or text-editing controls retain their own keys.
- Text selection and fresh images
Select text keeps recognized lines aligned with the zoomed picture. While text selection is active, pointer dragging and touch gestures belong to text selection, and double-click does not change the zoom; wheel zoom and the toolbar remain available. Choose Hide text to pan again. Selecting another file or changing the image source resets zoom, pan, and obsolete text recognition.
Interactive 3D model previews
- Supported formats
The desktop Inspector can preview GLB, glTF, VRM, OBJ, STL, PLY, FBX, COLLADA DAE, 3MF, and USDZ. Self-contained resources work directly, and supported formats can also use safe, bounded local sidecars.
- Interactive controls
Drag to orbit around the object, pan across the scene, use the wheel or trackpad to zoom, and choose Reset view to return to the fitted starting camera.
- Animation controls
When a supported model contains animation clips, choose one clip at a time and use play, pause, restart, timeline scrubbing, and playback-speed controls. From 0.3.78, the clip selector and transport share aligned 28-pixel controls, with a readable speed menu and separate timeline row. Narrow panes wrap the clip selector without clipping labels, and the model viewport keeps a minimum usable height.
- Materials
The Inspector lists model material names and types, their colors, and their texture slots so you can see what the preview loaded or could not resolve.
Folders and archives
- Folder analysis
Choose Calculate size to enumerate a folder tree and report total bytes, file count, and folder count. Runtime depends on the filesystem, storage, tree shape, and current workload.
- Archive preview
Supported ZIP, TAR, TAR.GZ, 7z, and RAR content can expose bounded archive information where the current preview path recognizes the format.
- Browse and drag from archives
Inspect supported archive contents and prepare eligible unencrypted entries for drag-out workflows without leaving the current folder. Protected archives use explicit extraction instead of drag-out.
- Archive operations
The archive engine can browse, test, create, and extract ZIP, TAR, TAR.GZ, and 7z. RAR listing and supported extraction remain available. Creation and extraction run as background jobs with progress, cancellation, and retained terminal status in Transfers.
- Existing-file policy
Before extraction, choose Stop on conflicts, Skip existing, or Extract into a new folder. RFile does not silently replace an existing destination entry.
- WinRAR integration
If WinRAR is installed, RFile's first right-click menu exposes WinRAR open, RAR/ZIP creation, extraction, and test commands without requiring Show more options.
- Documents and PDF
Recognized document or PDF formats can expose bounded structural or metadata previews; full rendering depends on the format and available viewer.
Create and open password-protected ZIP or 7z
- ZIP: encrypted contents, visible names
New protected ZIP files use AES-256 for file contents. ZIP filenames and directory names remain visible to other archive tools. Use a strong password and do not put sensitive information in the archive filename.
- 7z: encrypted contents and filenames
New protected 7z files use AES-256, LZMA2 compression, and encrypted headers. Per-stream salts and initialization vectors are fresh; the 7z password derivation uses 2^19 rounds. The outer archive filename, size, and filesystem metadata are still visible.
- Operation-local credentials
Passwords are not saved in RFile settings, logs, or command-line arguments. The dialog clears its fields on completion or cancellation; owned Rust password buffers are redacted in diagnostics and cleared on drop. RFile cannot recover a forgotten password. This is not a promise to erase every operating-system memory copy or JavaScript string.
- Create a protected archive
Select local files or folders and open the compression submenu. Choose the password-protected ZIP or 7z option, then enter and confirm a nonempty password. Ordinary ZIP, 7z, TAR, and TAR.GZ creation remain separate choices; TAR formats cannot be password-protected.
- Unlock the Inspector listing
Select a compatible encrypted ZIP or 7z, choose Unlock archive, and enter its password. A wrong password produces a fresh prompt. Damaged encrypted data can also fail validation; retrying a password cannot repair corruption.
- Extract explicitly
Choose the intended entries and extraction policy. Extraction asks for the password again because unlocking the listing does not retain it. Protected archive entries cannot be dragged out; use the extraction controls instead.
Run supported files
For supported runnable file types, the desktop Inspector can expose a Run action. This is a local desktop action; RFile does not advertise arbitrary executable launch from the remote web dashboard.
The current desktop recognizes EXE, BAT, CMD, COM, MSI, PowerShell, VBS, WSF, JAR, Python, and shell-script extensions as potentially runnable. Windows and file associations still determine whether a selected item can actually launch.