diff --git a/doc/files.md b/doc/files.md
index b090da9fb..8317b912b 100644
--- a/doc/files.md
+++ b/doc/files.md
@@ -1,31 +1,75 @@
+# Dogecoin Core file system
-* banlist.dat: stores the IPs/Subnets of banned nodes
-* dogecoin.conf: contains configuration settings for dogecoind or dogecoin-qt
-* dogecoind.pid: stores the process id of dogecoind while running
-* blocks/blk000??.dat: block data (custom, 128 MiB per file); since 0.8.0
-* blocks/rev000??.dat; block undo data (custom); since 0.8.0 (format changed since pre-0.8)
-* blocks/index/*; block index (LevelDB); since 0.8.0
-* chainstate/*; block chain state database (LevelDB); since 0.8.0
-* database/*: BDB database environment; only used for wallet since 0.8.0
-* db.log: wallet database log file
-* debug.log: contains debug information and general logging generated by dogecoind or dogecoin-qt
-* fee_estimates.dat: stores statistics used to estimate minimum transaction fees and priorities required for confirmation; since 0.10.0
-* mempool.dat: dump of the mempool's transactions; since 0.14.0.
-* peers.dat: peer IP address database (custom format); since 0.7.0
-* wallet.dat: personal wallet (BDB) with keys and transactions
-* .cookie: session RPC authentication cookie (written at start when cookie authentication is used, deleted on shutdown): since 0.12.0
-* onion_private_key: cached Tor hidden service private key for `-listenonion`: since 0.12.0
+**Contents**
-Only used in pre-0.8.0
----------------------
-* blktree/*; block chain index (LevelDB); since pre-0.8, replaced by blocks/index/* in 0.8.0
-* coins/*; unspent transaction output database (LevelDB); since pre-0.8, replaced by chainstate/* in 0.8.0
+- [Data directory location](#data-directory-location)
+- [Data directory layout](#data-directory-layout)
+- [GUI settings](#gui-settings)
+- [Legacy subdirectories and files](#legacy-subdirectories-and-files)
+- [Notes](#notes)
-Only used before 0.8.0
----------------------
-* blkindex.dat: block chain index database (BDB); replaced by {chainstate/*,blocks/index/*,blocks/rev000??.dat} in 0.8.0
-* blk000?.dat: block data (custom, 2 GiB per file); replaced by blocks/blk000??.dat in 0.8.0
+## Data directory location
-Only used before 0.7.0
----------------------
-* addr.dat: peer IP address database (BDB); replaced by peers.dat in 0.7.0
+The data directory is the default location where the Dogecoin Core files are stored.
+
+1. The default data directory paths for supported platforms are:
+
+Platform | Data directory path
+---------|--------------------
+Linux | `$HOME/.dogecoin/`
+macOS | `$HOME/Library/Application Support/Dogecoin/`
+Windows | `%APPDATA%\Dogecoin\` [\[1\]](#note1)
+
+2. A custom data directory path can be specified with the `-datadir` option.
+
+3. All content of the data directory, except for the `dogecoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ:
+
+Chain | Data directory path
+--------------|------------------------------
+(default) | *path_to_datadir*`/`
+`-testnet` | *path_to_datadir*`/testnet3/`
+`-regtest` | *path_to_datadir*`/regtest/`
+
+## Data directory layout
+
+Subdirectory | File(s) | Description
+-------------------|-----------------------|------------
+`blocks/` | | Blocks directory
+`blocks/index/` | LevelDB database | Block and transaction indices
+`blocks/` | `blkNNNNN.dat` | Actual blocks (in network format, dumped in raw on disk, 128 MiB per file)
+`blocks/` | `revNNNNN.dat` | Block undo data (custom format)
+`chainstate/` | LevelDB database | Blockchain state, a.k.a UTXO database
+`./` | `anchors.dat` | Anchor IP address database, created on shutdown and deleted at startup. Anchors are last known outgoing block-relay-only peers that are tried to re-connect to on startup
+`./` | `banlist.dat` | Stores the IPs/subnets of banned nodes
+`./` | `dogecoin.conf` | User-defined configuration settings for `dogecoind` or `dogecoin-qt`; can be specified by `-conf` option
+`./` | `dogecoind.pid` | Stores the process ID (PID) of `dogecoind` or `dogecoin-qt` while running; can be specified by `-pid` option
+`./` | `debug.log` | Contains debug information and general logging generated by `dogecoind` or `dogecoin-qt`
+`./` | `fee_estimates.dat` | Stores statistics used to estimate smart transaction fees and priorities required for confirmation
+`./` | `mempool.dat` | Dump of the mempool's transactions
+`./` | `onion_private_key` | Cached Tor onion service private key for `-listenonion` option
+`./` | `peers.dat` | Peer IP address database
+`./` | `.cookie` | Session RPC authentication cookie; if used, created at start and deleted on shutdown; can be specified by `-rpccookiefile` option
+`./` | `.lock` | Data directory lock file
+`./` | `db.log` | BDB error file
+`./` | `wallet.dat` | Personal wallet (a BDB database) with keys and transactions
+`./` | `.walletlock` | BDB wallet lock file
+
+## GUI settings
+
+`dogecoin-qt` uses the [`QSettings`](https://doc.qt.io/qt-5/qsettings.html) class; this implies platform-specific [locations where application settings are stored](https://doc.qt.io/qt-5/qsettings.html#locations-where-application-settings-are-stored).
+
+## Legacy subdirectories and files
+
+These subdirectories and files are no longer used by Dogecoin Core:
+
+Path | Description
+---------------|-------------
+`blktree/` | Blockchain index; replaced by `blocks/index/` in 1.10.0
+`coins/` | Unspent transaction output database; replaced by `chainstate/` in 1.10.0
+`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`} in 1.10.0
+`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat` in 1.10.0
+`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in 1.7.0
+
+## Notes
+
+1. The `/` (slash, U+002F) is used as the platform-independent path component separator in this document.