我正在开发一个WebDAV服务器,它从虚拟文件系统中的数据库中提供信息。
因此,用户可以在服务器上创建文件,并在数据库中自动创建它们。
现在,只要用户连接到服务器,某些操作系统就会立即创建自己的元数据文件/文件夹(考虑Thumbs.db,desktop.ini,.fseventsd,DS_Store,...)
这个文件使数据库变得混乱 - 并且往往也会降低性能(OSX例如在打开文件夹后会立即执行大量索引,这意味着对数据库的点击次数很多)
因此,为了表现和清洁,我正在寻找由各种操作系统创建的(元)文件/文件夹的“完整”列表 - 服务器可以“安全”这些文件/文件夹。
到目前为止我的清单:
//TODO: get rid of system files
/*
*** everywhere
* Thumbs.db
* desktop.ini
* .DS_Store
* .desktop
* AlbumArt*.jpg
* Folder.jpg
* ._[ParentFoldername] // e.g. /foo/bar/._bar
* ._[ExistingFoldername] // e.g. /foo/._bar
* ._[ExistingFilename] // e.g. /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)
*/
我现有的OSX测试结构是:
/MarioDemo/
/FrankTest/
/TestItemRelation/
/.metadata_never_index
/MarioDemo/Alphabetical/
/MarioDemo/Hierarchical/
此处打开/ MarioDemo /:
时OSX请求的文件
答案 0 :(得分:4)
我猜你的清单已经很完整了。除非您特别想要过滤掉特定的文件类型,否则我只会添加以下内容:
.DS_Store?
._*
.Spotlight-V100
.DocumentRevisions-V100
.fseventsd
.MobileBackups
Icon?
__MACOSX
ehthumbs.db
desktop.ini
*.desktop
*.bak
.*~
*~
我从名为Ignoramus的项目中获取了这些内容。带有模式的相关文件是here,采用emacs格式。完全匹配的列表打印在下面,这是我从以下地方获取的:
"$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