List of various system files that can be ignored when implementing a virtual file system

I am working on a WebDAV server that presents information from a database in a virtual file system.

Thus, the user can create files on the server, and they are automatically created back in db.

Now, as soon as the user connects to the server, some operating systems tend to create their own metadata / folder files immediately (thinking of Thumbs.db, desktop.ini, .fseventsd, DS_Store, ...)

These files clutter up the database - and tend to slow performance (OSX, for example, does a lot of indexing as soon as a folder opens, which means tons of database hits)

So, for speeches and cleanliness, I am looking for a β€œcomplete” list of (meta) files / folders created by various OSs that are β€œsafe” for server suppression.

my list:

//TODO: get rid of system files /* *** everywhere * Thumbs.db * desktop.ini * .DS_Store * .desktop * AlbumArt*.jpg * Folder.jpg * ._[ParentFoldername] // eg /foo/bar/._bar * ._[ExistingFoldername] // eg /foo/._bar * ._[ExistingFilename] // eg /foo/bar/._baz (baz is a legit file inside bar) * ._. // ?!? *** root only * System Volume Information * .fseventsd * $recycling.bin * $Recycle.Bin * Recycled * .Trashes * hiberfil.sys * pagefile.sys * .hidden * mach_kernel * Backups.backupdb * Contents * *** special * .metadata_never_index // fake this file in root * // (should keep OSX from indexing) */ 

my existing test framework for OSX was:

 /MarioDemo/ /FrankTest/ /TestItemRelation/ /.metadata_never_index /MarioDemo/Alphabetical/ /MarioDemo/Hierarchical/ 

here the OSX files are requested when opening / MarioDemo /:

propfinds from OSX

+4
source share
1 answer

Your list is already quite complete, I think. I would only add the following if you specifically do not want to filter out certain types of files:

 .DS_Store? ._* .Spotlight-V100 .DocumentRevisions-V100 .fseventsd .MobileBackups Icon? __MACOSX ehthumbs.db desktop.ini *.desktop *.bak .*~ *~ 

I took them from a project called Ignoramus . The corresponding template file is here in emacs format. A list of exact matches is printed below, where I took them from:

 "$RECYCLE.BIN" ; ms-windows ".AppleDouble" ; OS X ".DS_Store" ; OS X ".DocumentRevisions-V100" ; OS X ".LSOverride" ; OS X ".Rhistory" ; R ".Spotlight-V100" ; OS X ".TemporaryItems" ; OS X ".Trashes" ; OS X ".actionScriptProperties" ; actionscript ".apt_generated" ; gwt ".build" ; perl ".buildpath" ; eclipse ".builds" ; visualstudio ".bzr" ; bazaar ".cdv" ; codeville ".classpath" ; eclipse ".com.apple.timemachine.donotpresent" ; OS X ".com.apple.timemachine.supported" ; OS X ".coverage" ; python ".cproject" ; eclipse ".directory" ; KDE ".dropbox" ; dropbox ".dropbox.cache" ; dropbox ".emacs.desktop" ; emacs desktop.el ".emacs.desktop.lock" ; emacs desktop.el ".eunit" ; erlang ".externalToolBuilders" ; eclipse ".flexProperties" ; actionscript ".fseventsd" ; OS X ".git" ; git ".hg" ; mercurial ".idea" ; various ".ido.last" ; emacs ido-mode ".last_cover_stats" ; perl ".lein-deps-sum" ; leiningen ".loadpath" ; eclipse ".netrwhist" ; vim ".org-id-locations" ; emacs org-mode ".pc" ; quilt ".project" ; eclipse ".projectile" ; emacs projectile ".recentf" ; emacs recentf ".redcar" ; redcar ".rspec" ; rails ".sass-cache" ; sass ".scala_dependencies" ; scala ".svn" ; subversion ".tox" ; python ".wmncach.el" ; emacs WoMan ".yardoc" ; yard "_MTN" ; monotone "__history" ; delphi "_build" ; perl "_cgo_defun.c" ; go "_cgo_gotypes.go" ; go "_darcs" ; darcs "_obj" ; go "_sgbak" ; vault "_site" ; jekyll "_test" ; go "_testmain.go" ; go "_yardoc" ; yard "aclocal.m4" ; automake "auto-save-list" ; emacs "autom4te.cache" ; autoconf "bin-debug" ; various "bin-release" ; various "blib" ; perl "build" ; various "Build" ; various "Build.bat" ; perl "COMMIT_EDITMSG" ; git "cmake_install.cmake" ; cmake "CMakeCache.txt" ; cmake "CMakeFiles" ; cmake "cover_db" ; perl "cscope.csd" ; cscope "cscope.files" ; cscope "cscope.inc" ; cscope "cscope.lst" ; cscope "cscope.out" ; cscope "cscope.out.po" ; cscope "cscope.tmplist" ; cscope "CVS" ; CVS "Debug" ; various "debug" ; various "depcomp" ; automake "DerivedData" ; xcode "Desktop.ini" ; ms-windows "ehthumbs.db" ; ms-windows "git-rebase-todo" ; git "gwt-unitCache" ; gwt "gwt_bree" ; gwt "install-sh" ; automake "install_manifest.txt" ; cmake "InstalledFiles" ; ruby "Makefile.in" ; automake "MCVS" ; meta-CVS "META.yml" ; perl "MERGE_MSG" ; git "minimal-session-saver-data.el" ; emacs minimal-session-saver "MYMETA.yml" ; perl "nbbuild" ; netbeans "nbdist" ; netbeans "nosetests.xml" ; python "pm_to_blib" ; perl "Profile" ; various "profile" ; various "RCS" ; RCS "Release" ; various "release" ; various "SCCS" ; SCCS "Session.vim" ; vim "slprj" ; matlab "SQUASH_MSG" ; git "TAGS" ; ctags/etags "tags" ; ctags/etags "TestResult" ; visualstudio "testresult" ; visualstudio "Thumbs.db" ; ms-windows "tmtags" ; textmate "xcuserdata" ; xcode "xhtml-loader.rnc" ; emacs nxhtml "{arch}" ; arch - todo is this correct? "~.dep" ; xcode "~.dot" ; xcode "~.nib" ; xcode "~.plst" ; xcode "test.out" ; generic testing "test_out" ; generic testing "test.output" ; generic testing "test_output" ; generic testing 
+3
source

All Articles