Skip to content

FSearch now has **full Windows support** with native compatibility for Windows 10/11!

License

Notifications You must be signed in to change notification settings

cygmris/fsearch_windows

Repository files navigation

FSearch Windows版本

Build Status Translation status

FSearch is a fast file search utility, inspired by Everything Search Engine. It's written in C and based on GTK3.

Features

  • Instant (as you type) results
  • Advanced search syntax
  • Wildcard support
  • RegEx support
  • Filter support (only search for files, folders or everything)
  • Include and exclude specific folders to be indexed
  • Ability to exclude certain files/folders from index using wildcard expressions
  • Fast sort by filename, path, size or modification time
  • Customizable interface (e.g., switch between traditional UI with menubar and client-side decorations)

Windows 支持说明 🪟

FSearch Windows版本,FSearch 现已提供 完整的 Windows 支持,完全兼容 Windows 10/11 系统!

✅ Windows 特性

  • 原生 Windows 应用程序 - 无需仿真环境,直接在 Windows 上运行
  • 中文完美支持 - 自动转换中文文件名编码(UTF-8、GBK、CP936)
  • C 盘扫描 - 安全扫描整个 C 盘,包括系统目录
  • 权限容错 - 优雅处理 Windows 目录权限限制
  • 多路径格式 - 支持 C:\路径\\服务器\共享/路径/文件 等格式

📥 Windows 安装方式

预编译版本(推荐)

  1. GitHub 发布页面 下载最新 Windows 版本
  2. 解压到任意目录
  3. 运行 fsearch.exe

从源代码编译

详细的 Windows 编译说明请参考 README_WINDOWS.md

🛠️ Windows 技术细节

  • 开发环境:MSYS2 + MinGW-w64
  • 构建系统:Meson + Ninja
  • GUI 框架:GTK3 配合 Windows 兼容层
  • 编码支持:UTF-8、GBK、CP936 编码自动转换
  • 系统集成:原生 Windows 路径和权限处理

📚 Windows 文档资源

🧪 Windows 测试套件

包含全面的测试:

  • 中文编码转换测试
  • Windows 路径处理测试
  • 数据库扫描测试
  • 性能基准测试
  • GUI 功能测试

运行测试:

cd test
./run_all_tests.sh

🔧 常见问题解决

Q:扫描 C 盘时出现权限错误怎么办? A:这是正常现象,程序会跳过无法访问的系统目录,继续扫描其他内容。

Q:中文文件名显示乱码怎么办? A:Windows 版本已自动处理中文编码,如仍有问题请检查系统区域设置。

Q:程序启动很慢怎么办? A:首次扫描需要建立索引,后续会很快。可以排除不需要的大目录以提升性能。

详细的 Windows 文档和故障排除,请参阅 README_WINDOWS.md


Windows Support 🪟

FSearch now has full Windows support with native compatibility for Windows 10/11!

✅ Windows Features

  • Native Windows Application - Runs natively on Windows without emulation
  • Chinese Perfect Support - Automatic encoding conversion for Chinese filenames
  • C Drive Scanning - Securely scan entire C drive including system directories
  • Permission Tolerance - Gracefully handles Windows directory permissions
  • Multiple Path Formats - Supports C:\path, \\server\share, /path/to/file formats

📥 Windows Installation

Pre-built Binary (Recommended)

  1. Download the latest Windows version from GitHub Releases
  2. Extract to any directory
  3. Run fsearch.exe

Build from Source

For detailed Windows build instructions, see README_WINDOWS.md

  • MSYS2 Environment Setup - Complete guide for Windows development environment
  • Dependency Management - Automatic installation of GTK3, GLib, PCRE2, ICU libraries
  • Build Instructions - Step-by-step compilation guide

🛠️ Windows Technical Details

  • Development Environment: MSYS2 + MinGW-w64
  • Build System: Meson + Ninja
  • GUI Framework: GTK3 with Windows compatibility layer
  • Encoding Support: Automatic conversion between UTF-8, GBK, CP936 encodings
  • System Integration: Native Windows path and permission handling

📚 Windows Documentation

🧪 Windows Testing

Comprehensive test suite included:

  • Chinese encoding conversion tests
  • Windows path handling tests
  • Database scanning tests
  • Performance benchmarks
  • GUI functionality tests

Run tests with:

cd test
./run_all_tests.sh

For detailed Windows documentation and troubleshooting, see README_WINDOWS.md.


Requirements

  • GTK 3.18
  • GLib 2.50
  • glibc 2.19 or musl 1.1.15 (other C standard libraries might work too, those are just the ones I verified)
  • PCRE2 (libpcre2)
  • ICU 3.8

Download

It is recommended to install FSearch from one of the Stable packages, unless you know what you're doing.

The Development packages are primarily intended for testing and adventurous users.

🪟 Windows

Platform Stable/Development Installation Method Notes
Windows 10/11 Stable & Development GitHub Releases Native Windows executable with full features
Windows Development Build from Source For developers and advanced users

Windows Features:

  • ✅ Native Windows application
  • ✅ Chinese filename support (UTF-8, GBK, CP936)
  • ✅ C drive scanning with permission handling
  • ✅ No installation required (portable version)

🐧 Linux Distributions

Distribution Stable Development
Ubuntu PPA Stable PPA Daily
Arch Linux AUR AUR (git)
Fedora/RHEL/CentOS COPR Stable COPR Nightly
Debian OpenBuildService
openSUSE OpenBuildService
Flatpak (limited features) Flathub
Solus* Solus Repository
FreeBSD* FreshPorts

(*) Not maintained by me

Roadmap

https://github.com/cboxdoerfer/fsearch/wiki/Roadmap

Build Instructions

https://github.com/cboxdoerfer/fsearch/wiki/Build-instructions

Localization

The localization of FSearch is managed with Weblate.

https://hosted.weblate.org/projects/fsearch/

If you want to contribute translations please submit them there, instead of opening pull requests on GitHub. This also includes any suggestions to the English texts — English isn't my first language, so there are likely errors and unusual wordings.

Instructions can be found here: https://docs.weblate.org/en/latest/user/basic.html

And of course: Thank you for taking the time to translate FSearch!

Current Limitations

  • Sorting lots of results by Type can be very slow, since gathering that information is expensive, and the data isn't indexed. This also means that when the view is sorted by Type, searching will reset the sort order to Name.
  • Using the Move to Trash option doesn't update the database index, so trashed files/folders show up in the result list as if nothing happened to them.

Why yet another search utility?

Performance. On Windows I really like to use Everything Search Engine. It provides instant results as you type for all your files and lots of useful features (regex, filters, bookmarks, ...). On Linux I couldn't find anything that's even remotely as fast and powerful.

Before I started working on FSearch, I took a look at existing solutions. I tried MATE Search Tool (formerly GNOME Search Tool), Recoll, Krusader (locate based search), SpaceFM File Search, Nautilus, ANGRYsearch and Catfish, to find out whether it makes sense to improve those. However, they're not exactly what I was looking for:

  • standalone application (not part of a file manager)
  • written in a language with C like performance
  • no dependencies to any specific desktop environment
  • Qt5 or GTK3 based
  • small memory usage (both hard drive and RAM)
  • target audience: advanced users

Looking for a command line interface?

I highly recommend fzf or the obvious tools: find and (m)locate

Why GTK3 and not Qt5?

I like both of them, and my long term goal is to provide console, GTK3 and Qt5 interfaces, or at least make it easy for others to build those. However, for the time being it's only GTK3 because I like C more than C++, and I'm more familiar with GTK development.

Questions?

Email: christian.boxdoerfer[AT]posteo.de

About

FSearch now has **full Windows support** with native compatibility for Windows 10/11!

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 116

Languages