File Studio tools
Drop a folder here
Browse it, search it, check the names for OneDrive and SharePoint, rename files in bulk, find duplicates, make and verify checksums, compare two folders and look inside a file. Nothing is uploaded.
Open a folder and browse, search, check names for OneDrive and SharePoint, rename in bulk, find duplicates, make checksums, compare two folders and look inside a file. Everything runs in your browser. Nothing is uploaded and nothing is ever deleted.
Browse it, search it, check the names for OneDrive and SharePoint, rename files in bulk, find duplicates, make and verify checksums, compare two folders and look inside a file. Nothing is uploaded.
The files never leave this device. The page has no server and sends no file name anywhere.
Press Choose folder, drop a folder on the page or try the sample files. The page lists names, sizes and dates. File contents are read in small slices on your device and never uploaded.
Files is a fast table you can sort and filter by name, type, size and date. Select rows with the checkboxes or the keyboard and look at a preview on the right.
Check lists names that OneDrive, SharePoint or Windows would refuse, case clashes, empty files, double extensions and files whose content does not match the extension. Each finding says why.
Rename builds a stack of rules with a live before and after. Duplicates finds identical files, Checksums makes and verifies hashes, Compare sets two folders side by side.
Switch on Allow changes to rename in place, with undo, or export a script, a CSV or a ZIP instead. Nothing is ever deleted: duplicates are moved into a _duplicates folder.
_duplicates. One file of each group stays where it isFile Studio is a toolbox for one folder at a time. You open a folder on your own computer, and the page reads the names, sizes and dates in it. Seven tools work on that list: you can browse and search it, check the names against the rules of OneDrive and SharePoint, rename many files at once, find duplicates, make or verify checksums, compare it with a second folder, and look inside a single file. The page runs entirely in your browser. File names and contents are never sent anywhere, and nothing is ever deleted.
A fast table of every file, with filters for name, type, size and date, a preview, and exports to CSV, Markdown or a plain list of paths.
A stack of rules with a live before and after, conflict checks, presets, verified renames with undo, and scripts for bash, PowerShell and cmd.
Groups of identical files proven by size, a partial hash and a full SHA-256. Extras are moved into _duplicates, never deleted.
MD5, SHA-1, SHA-256, SHA-512 and CRC32 for any selection, a one-hash verifier, and a check of a whole folder against a checksum list.
Two folders side by side by size, date or content, with notes about capitals and accents, and a copy plan as an rsync or robocopy script.
Type by the first bytes (103 signatures), entropy, text encoding, image metadata, ZIP contents and a hex viewer for one file.
32 rules for OneDrive, SharePoint and Windows names, other systems, housekeeping and security. Each says why.
A name that works on your disk can fail when it is uploaded or synced. The Check tool measures every file and folder against the limits that Microsoft publishes in Restrictions and limitations in OneDrive and SharePoint and Naming Files, Paths, and Namespaces. Both pages were read on 5 November 2026. Limits change, so treat Microsoft's pages as the final word.
| Rule | What the Microsoft page says | In Check |
|---|---|---|
| Characters | " * : < > ? / \ | are not allowed in a file or folder name. The control characters 1 to 31 and NUL are reserved by Windows | Error |
| Reserved names | CON, PRN, AUX, NUL, COM0 to COM9 and LPT0 to LPT9. Windows treats NUL.txt like NUL | Error |
| Blocked names | .lock, desktop.ini, any name that starts with ~$, and _vti_ anywhere in a name | Error |
| Spaces | No leading or trailing space in a file or folder name | Error |
| Trailing period | Windows says not to end a name with a period. Shown as a warning because the rule comes from the Windows naming page | Warning |
| Path length | At most 400 characters for the whole decoded path in OneDrive and SharePoint, and 255 for each part of it | Error |
| Windows path length | 260 characters (MAX_PATH) before Windows 10 version 1607. Newer versions need a setting to lift the limit | Note |
| File size | 250 GB at most for one file | Error |
# and % | Some organisations do not yet support them in names | Note |
forms | Not supported as a folder name at the root of a library | Warning |
.tmp files | Temporary .tmp files are not synced | Note |
The path is counted from the folder you opened. The address of your library comes in front of it when you upload, so a path close to the limit here may be over the limit there. Check also looks at things Microsoft does not list. Names that differ only by capitals or by how an accent is stored can collapse into one name on another system. Names such as invoice.pdf.exe hide the real type. An invisible or text-direction character can make two names look the same, or make a file ending in .exe look like a document.
Rename builds a stack of rules: find and replace (plain text or a regular expression), change case, clean up accents and forbidden characters, insert text with tokens such as a date or a counter, add numbers, remove characters by position, and change the extension. The table shows the old and the new name side by side as you type, flags every conflict (two files that would get the same name, a name that is already taken, a name that OneDrive would refuse). A blocked file keeps its old name, and nothing is renamed over another file. Presets such as Fix names for OneDrive and SharePoint or kebab-case start you off, and you can save your own.
To apply the renames the page needs write access, which you grant for a folder you chose with the picker. Every rename is checked afterwards, and a batch can be undone from the Changes tab. If you would rather run it yourself, export the plan as a bash, PowerShell or cmd script, a CSV, or a ZIP of the files under their new names. When the browser offers a move call for the file, the page uses it. Otherwise it writes a copy under the new name, compares it with the original, and only then takes the old name away. If anything does not match, both files stay and you are told. A browser cannot set a file's modified date, so a copy made this way gets today's date.
Reading every file in full would be slow, so the search narrows the field in three steps. First it groups files of the same size, because two files of different sizes cannot be identical. Next it hashes the first and last 64 KiB of the files that remain, which drops most look-alikes after reading a small part of each. Last it computes a full SHA-256 of the remaining candidates. Only files with the same full hash form a group. Two files that match at both ends and differ in the middle are therefore not reported. SHA-256 is used because MD5 and SHA-1 have known collision attacks (RFC 6151, NIST). A run that you cancel keeps the hashes it already made, and a second run reuses them while the file's size and date are unchanged.
The Quick mode only compares names and sizes. It reads nothing, so it is fast, but a match is a hint and the page says so. For each group you pick which copy stays, by rule (oldest, newest, the one without Copy or (1) in its name, shortest path, shortest name, first in path order, or inside a folder you name) or by hand. The other copies are moved into a folder called _duplicates, with their folder structure kept, and a name that is already taken there gets a number. Each group always keeps one file in place. You can export the plan as a script that only moves files, as a CSV, or as a ZIP of the folder without the extra copies.
A checksum is a short fingerprint of a file's bytes. Change one bit and the fingerprint changes. If the SHA-256 of your download equals the SHA-256 the publisher lists, the bytes you have are the bytes they hashed. That catches a broken or truncated download and a copy that was damaged on the way. It does not tell you the file is safe, and it proves nothing about who made it. When the file and its hash sit on the same page, anyone who can change the file can change the hash as well, so take the hash from a different, trusted place. CRC32 is meant for accidental damage only. MD5 and SHA-1 are fine for spotting accidents, but collisions can be made on purpose, so do not use them to establish trust. A hash covers the content only: it says nothing about the name, the date or the folder.
The Checksums tool computes MD5, SHA-1, SHA-256, SHA-512 and CRC32 for the files you select, writes them as hex, base64 or a sha256sum-style list, and verifies a hash you paste. It recognises the algorithm from the length. It can also verify a whole folder against a checksum file in the common format of md5sum and sha256sum (hash, a space and a mode character, then the name; see the md5sum manual), and tells you which files match, differ, are missing or are not listed.
Compare lines up two folders by path and judges each pair by size, by modified date, or by content (a full SHA-256 of both sides). By default dates count as equal within two seconds, because FAT stores times with a two-second resolution (Microsoft, File Times). Each row says whether the files are identical, different, newer on one side, or only on one side, and you can ignore folders and files by name or pattern. A note appears where one side spells a name differently: Windows file systems treat FOO.txt and foo.txt as one name, Linux treats them as two (Microsoft, Adjust case sensitivity), and an accent can be stored as one character or as a letter plus a combining mark (MDN, normalize). Two such names look the same and are not equal bytes.
From the comparison you can export a plan: an rsync script for Linux and macOS, or a robocopy batch file for Windows. Both only copy. They never use --delete, /MIR, /PURGE or /MOVE. The rsync script keeps replaced files in a _replaced folder inside the destination, and both scripts have a dry-run option. The robocopy script names the files one by one and lists them with /L when you ask for a dry run (robocopy reference). Read a script and run it with a dry run first. The page cannot run it for you.
Inspect names a file's real type from its first bytes (the magic number), using a table of 103 signatures. Beside every match it shows where that signature comes from, and says plainly when a row is general knowledge that was not checked against a specification. It also shows an entropy graph per block, the text encoding and line endings, image size and EXIF fields (camera, date, orientation, and whether a GPS position is stored), the chunks of a PNG, the file list of a ZIP and a hex viewer that reads a few hundred bytes at a time, so a multi-gigabyte file opens at once. It lists a ZIP but does not unpack it. For that, use Open ZIP File Online.
Choosing a folder with write access uses the File System Access API. According to web.dev, showDirectoryPicker() is available in Chrome and Edge from version 86, and not in Firefox or Safari. MDN adds that it works only in a secure context (https), needs a click or key press to start, and is not yet a Baseline feature. Where it is missing, the page falls back to the classic folder input (Chrome 7, Edge 13, Firefox 50, Safari 11.1, per the same web.dev page) or to a dropped folder. Both give read-only access: you can browse, check, search, hash, inspect and compare, and export scripts for the changes. Renaming in place and moving duplicates need the picker. On most phones the folder choice is missing, so choose files or open the sample files.
The sample files are generated by the page and stored in your browser's private file storage (OPFS), so you can try renames and moves without touching your own files. Opening the sample again replaces that copy with a fresh one. It never touches your own files.
The page has no server. Its code makes no network request of its own: it has no call that sends data to a server, and the files you open are read with the browser's file APIs in small slices and hashed in your browser. Opening a file does not upload it, and no file name, path or content is passed to any outside address. The page does load the JetBrains Mono font from Google Fonts, the site's theme files, and the site's analytics script, which counts page views. In your browser's local storage it keeps three small items, all optional: jb-theme (dark or light, set by the site's theme switch), jb-fs-prefs (whether system files are hidden, and the options you set in Compare, including any ignore patterns you typed) and jb-fs-presets (the Rename presets you saved, which hold rules and no file names). The address ends in #files, #rename, #check and so on to remember the tool and nothing else. If storage is blocked, everything still works for the visit.
A scan lists up to 200,000 entries and tells you when it stops. A browser only reports a file's last modified time. It cannot see the creation time, the owner, permissions, NTFS alternate data streams or the recycle bin, and a folder has no size or date of its own here. If a synced folder holds online-only files, reading them may make your sync app download them first. Large hash runs take as long as the disk needs to deliver the data, and a ZIP built in memory over 1 GiB gets a warning, unless the browser can write it straight to a file you choose. Rename scripts for PowerShell and cmd were written to the quoting rules in the documentation but could not be run on Windows while this page was built, so read them before you run them.
File Studio is not a disk-space analyser: it lists and compares files but draws no size map. It is not an antivirus. The security checks point at names and contents worth a look and give no verdict. It is not a text differ, for which there is the Diff Checker, and it does not read logs, which is a job for the Log Explorer.