This project is no longer actively developed.
- Install dokany version 2
- Download the latest release
- Pass
.mfcfg
file toMergeFSMC.exe
(see Example directory in the downloaded archive)
You have to install Visual Studio 2022 with C++ Desktop Development and UWP Development.
- Clone this repository recursively (include submodules)
git clone --recursive https://github.com/SegaraRai/MergeFS.git
- Open
MergeFS.sln
in the root directory with Visual Studio 2022 - Build the solution
This project is licensed under the MIT License.
äž»ã«è€æ°ã®ãã£ã¬ã¯ããªãåäžã®ãã£ã¬ã¯ããªãšããŠããŠã³ãããWindowsçšãœãããŠã§ã¢ã§ãã
ãã©ã°ã€ã³ã«ãããã¢ãŒã«ã€ããã¡ã€ã«ãCUEã·ãŒãã®ããŠã³ãã«ã察å¿ããŠããŸãã
äŸãã°ã以äžã®ããã«ãã£ã¬ã¯ããªAãšãã£ã¬ã¯ããªBããã£ããšããŠã
- A
- abc
- def
- ghi
- B
- def
- jkl
- mno
- pqr
- def
ããããã£ã¬ã¯ããªCã«ä»¥äžã®éãã«ããŠã³ããããœãããŠã§ã¢ã§ãã
- C
- abc
- def
- ghi
- jkl
- mno
- pqr
ããããLinuxã§ã®UnionFSãOverlayFSã«äŒŒããã®ã ãšæããŸãïŒäœ¿ã£ãããšããªãã®ã§åãããŸãããïŒã
ããŠã³ãèªäœã«ã¯Dokanyã©ã€ãã©ãªã䜿çšããŠããŸãã
- è€æ°ã®ãã©ã€ãã«ãŸããã£ãŠç®¡çããããšã«ãªã£ãŠããŸã£ããã®ããäžã€ã«çºããã
- ã¢ãŒã«ã€ããã¡ã€ã«ãå±éããã«äžèº«ã®ãã¡ã€ã«ãæ±ããã
- æŽã«ãã¢ãŒã«ã€ããã¡ã€ã«ã«å€æŽãå ããã«ããŠã³ãå ã§ãã¡ã€ã«å€æŽã䌎ãäœæ¥ãããã
- CUE+FLACã§ç®¡çããŠãã鳿¥œãã¡ã€ã«ããã©ãã¯ããšã«åãåºãããã ãã«ãã£ã¹ã¯å®¹éã䜿çšããããªã
ãšãã£ãçšéãæ³å®ããŠããŸãã
ããŠã³ãå
ã®ããšãããŠã³ããã€ã³ããšåŒã³ãŸãã
æåã®äŸã§ã¯ããã£ã¬ã¯ããªCã®ããšã§ãã
ããŠã³ããã€ã³ãã«ã¯ãã©ã€ãããNTFSãã¡ã€ã«ã·ã¹ãã äžã®ãã£ã¬ã¯ããªãæå®ã§ããŸãã ãã©ã€ããæå®ããå Žåã¯äœ¿ãããŠããªããã©ã€ãã¬ã¿ãŒããNTFSãã¡ã€ã«ã·ã¹ãã äžã®ãã£ã¬ã¯ããªãæå®ããå Žåã¯æ¢ã«ååšãããã£ã¬ã¯ããªãæå®ããå¿ èŠãããããã§ãã ä»ã«ããããã¯ãŒã¯ãã©ã€ããšããŠããŠã³ãããããšãå¯Ÿå¿æ¬¡ç¬¬ã§ã¯å¯èœãªã¯ãã§ããããã®èŸºãã®åŠçã¯å šãŠDokanyã«å§è²ããŠããããããã¡ããã芧ãã ããã
ããŠã³ãå
ã®ããšãããŠã³ããœãŒã¹ïŒãŸãã¯åã«ãœãŒã¹ïŒãšåŒã³ãŸãã
æåã®äŸã§ã¯ããã£ã¬ã¯ããªAããã£ã¬ã¯ããªBã®ããšã§ãã
ããŠã³ããœãŒã¹ãšããŠã¯ãã¡ã€ã«ã·ã¹ãã äžã®ãã£ã¬ã¯ããªã®ä»ãã¢ãŒã«ã€ããã¡ã€ã«ãCUEã·ãŒããçšããããšãã§ããŸãã ãããã®ããŠã³ããœãŒã¹ã®å¯Ÿå¿ã¯ããã©ã°ã€ã³ãè¡ããŸãã
ããŠã³ããœãŒã¹ã«ã¯æžã蟌ã¿å¯èœãªãã®ïŒããšãã°ãã¡ã€ã«ã·ã¹ãã äžã®ãã£ã¬ã¯ããªïŒãšæžã蟌ã¿äžå¯èœãªãã®ïŒããšãã°ã¢ãŒã«ã€ããã¡ã€ã«ãCUEã·ãŒãïŒããããæåã®ããŠã³ããœãŒã¹ãæžã蟌ã¿å¯èœã§ããå Žåã¯ãããŠã³ãå ãæžã蟌ã¿å¯èœã«ãªããŸãã ãã®ãšããæžã蟌ãŸãã倿Žã¯æåã®ããŠã³ããœãŒã¹ãã¡ã¿ããŒã¿ã«ä¿åãããŸãã
ã¡ã¿ããŒã¿ã¯ããŠã³ããœãŒã¹ã®ã¿ã§ã¯è¡šããªãæ
å ±ïŒå€æŽïŒã衚ãããã«çšããããŒã¿ã§ãã
äŸãã°ãå
ã®ãã£ã¬ã¯ããªAãBã®äŸã§ãAãBã®é ã§Cã«ããŠã³ããããšããããŠã³ãå
ã®Cã§C/mnoãåé€ããããšãèããŸãã
C/mnoã®å®äœã¯Bã«ãããŸãããBã¯æåã®ããŠã³ããœãŒã¹ã§ã¯ãªãã®ã§å€æŽãå ããããšãã§ããŸããã
ããã§ãC/mnoãå逿žã¿ã§ãããšããããšãèšãããã«ã¡ã¿ããŒã¿ãå¿
èŠãšãªããŸãã
ãã®ä»ã«ããäŸãã°ãã¡ã€ã«ã®å±æ§ã倿Žãããããã¡ã€ã«ãç§»åããå Žåã«IOãæããããã«ã¡ã¿ããŒã¿ã䜿çšãããŸãã
çŸåšã¡ã¿ããŒã¿ã¯ç¬èªã®ãã€ããªåœ¢åŒã§ä¿åãããŠããŸãããä»åŸSQLite3ã«ç§»ãäºå®ã§ãã
ããŠã³ããœãŒã¹ã®åªå
é äœã¯ãç«¶åãããã¡ã€ã«ããã£ã¬ã¯ããªãååšãããšãã«å¿
èŠã«ãªããŸãã
ã€ãŸããåãååãæã€ãã¡ã€ã«ããã£ã¬ã¯ããªãè€æ°ã®ããŠã³ããœãŒã¹ã«ååšããå ŽåãããŠã³ãå
ã§ã©ããåç
§ããã°è¯ããã倿ããã®ã«äœ¿ãããã®ãããŠã³ããœãŒã¹ã®åªå
é äœã§ãã
ããŠã³ããœãŒã¹ã®åªå
é äœã®èŠåã¯åçŽã§ãå
ã«æå®ããããã®ãããåªå
ãããŸãã
äŸãã°åãexampleãšããååãæã€ãã¡ã€ã«ãããŠã³ããœãŒã¹XãšããŠã³ããœãŒã¹Yã®åæ¹ã«ååšããããããããããŠZã«ããŠã³ãããå ŽåãXãYã®é ã§ããŠã³ãããŠããã°Z/exampleã¯X/exampleãæããå察ã«YãXã®é ã§ããŠã³ãããŠããã°Z/exampleã¯Y/exampleãæããŸãã
æåã®ããŠã³ããœãŒã¹ãæžã蟌ã¿å¯èœã§ããå Žåã¯ãããŠã³ãå
ãæžã蟌ã¿å¯èœã«ãªããŸãã
ãã®éãå ãã£ã倿Žã¯æåã®ããŠã³ããœãŒã¹ã«åæ ãããŸãã
äŸãã°ãæåã®ãã£ã¬ã¯ããªAãBãCã®äŸã§AãBã®é ã«ããŠã³ãããŠãããšããŠãæ°ãã«C/stuãäœæããå Žåããã£ã¬ã¯ããªAã«A/stuãšããŠæ°ããªãã¡ã€ã«ãäœæãããŸããä»ã«ãC/mno/vwuãäœæããå Žåãæåã«A/mnoãã£ã¬ã¯ããªãAã«äœæããããã®åŸã«A/mno/vwuãäœæãããŸãã
Case sensitivityãšã¯ãã¢ã«ãã¡ãããã®å€§æåå°æåã®åºå¥ã®ããšã§ãã
äŸãã°Windowsã§ã¯ãéåžžNTFSããªã¥ãŒã ã«ãããŠexample.txtãšãããã¡ã€ã«ã«Example.txtãšããŠã¢ã¯ã»ã¹ã§ããŸãããŸãexample.datãšExample.datãåããã£ã¬ã¯ããªã«ååšã§ããŸããã
äžæ¹Linuxãªã©ã§ã¯ãéåžžexample.txtãšãããã¡ã€ã«ã«Example.txtãšããŠã¢ã¯ã»ã¹ã§ããªã代ããã«ãexample.datãšExample.datãåããã£ã¬ã¯ããªã«ååšã§ããŸãã
MergeFSã«ãããŠããã¡ã€ã«åã®å€§æåå°æåãåºå¥ãããã¯ããŠã³ãæã®ãªãã·ã§ã³ã§æå®ãããŸãã
ããã§æå®ããããã®ã¯ãLibMergeFSã管èœããã¡ã¿ããŒã¿çã®ç®¡çã«ãããŠã¯é©çšãããŸãããLibMergeFSã®ç®¡èœå€ã§ãããœãŒã¹ãã©ã°ã€ã³ã§ã¯ããã®ãœãŒã¹ãã©ã°ã€ã³ã®å®è£
ã«ããé©çšãããªãããšããããŸãã
ä»ã®ãšãããMFPSFileSystem以å€ã¯å€§æåå°æåã®åºå¥ã®æå®ãå¹ãããã«ãªã£ãŠããŸããMFPSFileSystemã§ã¯ãWindowsã®APIã§ããCreateFileãåŒã³åºãããšãã®çµæã«äŸåããŸããåºæ¬çã«ã¯ãæå®ã«ããã倧æåå°æåãåºå¥ãããŸããã
ãœãŒã¹ãã©ã°ã€ã³ã«æž¡ããã¡ã€ã«åã®å€§æåå°æåã®èª¿æŽãLibMergeFSåŽã§è¡ãããœãŒã¹ãã©ã°ã€ã³ã§ã®å¯Ÿå¿ãäžèŠã«ããããšãæ€èšäžã§ãã
Case preservationãšã¯ããã¡ã€ã«ãä¿åããéã«å€§æåå°æåãç¶æãããã©ããã§ãã
äŸãã°NTFSã§ã¯Example.txtãšããååã§ä¿åãããšããã®ãŸãŸExample.txtã«ãªããŸããäžæ¹ã§FAT16ã§ã¯ã8.3圢åŒã®ãã¡ã€ã«åã«ãã察å¿ããŠããªãå Žåããã¡ã€ã«åã¯ãã¹ãŠå€§æåã«å€æãããŠä¿åãããŸããã€ãŸããExample.txtãšããŠä¿åããããšãããšãEXAMPLE.TXTã«å€æãããŠä¿åãããŸãã
MergeFSã«ãããŠã倧æåå°æåãç¶æããããã¯åããŠã³ããœãŒã¹ã«ãããŸãã
çŸåšååšããå¯äžã®æžã蟌ã¿å¯èœãªããŠã³ããœãŒã¹ãæã€MFPSFileSystemã§ã¯ãCase sensitivityã®å Žååæ§Windowsã®APIã§ããCreateFileãåŒã³åºãããšãã®çµæã«äŸåããŸããåºæ¬çã«ã¯ããã®ããŠã³ããœãŒã¹ã®ããšãšãªããã£ã¬ã¯ããªãååšããããªã¥ãŒã ã®ãã¡ã€ã«ã·ã¹ãã ã«ãããŸãã
äŸãã°NTFSã®å Žåã倧æåå°æåãç¶æãããŸãã
æ¬ãããžã§ã¯ãã¯ãã³ã¢ã§ããLibMergeFSãšãã¯ã©ã€ã¢ã³ãããããŠãã©ã°ã€ã³ã®3çš®é¡ãããªããŸãã
DLLã®åœ¢åŒã§ãã³ã¢æ©èœãæ ããŸãã
- LibMergeFS
åããŠã³ããœãŒã¹ãæããäžã€ã®ããŠã³ããœãŒã¹ãšããŠDokanyã«æäŸãã圹å²ãæã¡ãŸãã
C++ã§æžãããŠããŸãã
å®è¡å¯èœãã¡ã€ã«ã®åœ¢ã§ããŠãŒã¶ãŒã«ã³ã¢ã§ããLibMergeFSã®æ©èœãæäŸããŸãã
-
MergeFS
GUIãåããæçµçã«ã¡ã€ã³ã®ããã³ããšã³ãã«ããäºå®ã®ãã®ã§ãã
C#ã§æžãäºå®ã§ããããŸã ã»ãšãã©æªå®æã§ããC#æžããªãã誰ãå©ããŠã -
MergeFSCC
CLIã®ããã³ããšã³ãã§ãã ããšããšã³ã¢æ©èœã®ãã¹ãçšã«äœæããŸããããããã¯ããã§ãŸãå¥ã®ããã³ããšã³ããšããŠå®æãããäºå®ã§ãã
C++ã§æžãããŠããŸãã -
MergeFSMC
ã¿ã¹ã¯ãã¬ã€åžžé§åã®ããã³ããšã³ãã§ãã
YAMLã§èšè¿°ããèšå®ãã¡ã€ã«ãèªã¿èŸŒãã§ããŠã³ãã§ããŸãã
ããããæãå®çšçãªã¯ã©ã€ã¢ã³ãã§ãã
C++ã§æžãããŠããŸãã
DLLã®åœ¢åŒã§ãã³ã¢æ©èœã«æ§ã ãªæ©èœã远å ããŸãã
çŸåšæäŸããå¯äžã®ãã©ã°ã€ã³åœ¢åŒã§ãã æ§ã ãªãã®ïŒã¢ãŒã«ã€ããã¡ã€ã«ãå®éã®ãã¡ã€ã«ã·ã¹ãã äžã®ãã£ã¬ã¯ããªïŒãããŠã³ãã§ããããã«ããŸãã
-
MFPSFileSystem
å®éã®ãã¡ã€ã«ã·ã¹ãã äžã®ãã£ã¬ã¯ããªãããŠã³ãããŸãã
C++ã§æžãããŠããŸãã -
MFPSArchive
ã¢ãŒã«ã€ããã¡ã€ã«ãããŠã³ãããŸãã ã¢ãŒã«ã€ããã¡ã€ã«å ã«ååšããã¢ãŒã«ã€ããã¡ã€ã«ãååž°çã«ãã£ã¬ã¯ããªãšããŠèªã¿èŸŒã¿ãŸãã éå§çž®ãã¡ã€ã«ïŒtarããŒã«çïŒãªã©å¯èœãªãã°ã¡ã¢ãªäžã«å±éããçŽæ¥ããŒã¿ãèªã¿åããŸãããéåžžã®å§çž®ãã¡ã€ã«ã®å Žåã¯æåã«ã¡ã¢ãªäžã«å±éãè¡ããŸããïŒã³ã³ãã€ã«æãªãã·ã§ã³ã§å€æŽãå¯èœã§ããïŒ
ã¢ãŒã«ã€ããã¡ã€ã«ã®èªã¿åãã«7-Zipã䜿çšããŠããŸãã
C++ã§æžãããŠããŸãã -
MFPSCue
CUE+BINãCUE+FLACãCUE+WAVã§ä¿åããã鳿¥œãã¡ã€ã«ãããŠã³ãããŸãã CD-DAãšããŠã§ã¯ãªããåãã©ãã¯ããšã«åå²ãããWAVãã¡ã€ã«çŸ€ãšããŠããŠã³ãããŸãã ãã¡ããMFPSArchiveåæ§å šãŠãã¡ã¢ãªäžã«å±éããå¿ èŠã«å¿ããŠãã³ãŒãããããã«ããŠããŸããïŒã³ã³ãã€ã«æãªãã·ã§ã³ã§å€æŽãå¯èœã§ããïŒ
FLACã®ãã³ãŒãã«libFLACåã³libFLAC++ã䜿çšããŠããŸãã
C++ã§æžãããŠããŸãã -
MFPSNull
äœãäžèº«ãæããªãèªã¿åãå°çšãœãŒã¹ã§ãã
å é ã«ãããé 眮ããããšã§ãèªã¿åãå°çšããŠã³ãã«ã§ããŸãã
C++ã§æžãããŠããŸãã -
MFPSMemory ïŒäºå®ïŒ
ã¡ã¢ãªäžã«æžã蟌ã¿å¯èœãªãœãŒã¹ãããŠã³ããããã®ãšããŠäœæäºå®ã§ãã
C++ã§æžãäºå®ã§ãã
- å šæ©èœã䜿çšã§ããCLIããã³ããšã³ã
- GUIããã³ããšã³ã
- ã»ãã¥ãªãã£å±æ§
- ãã©ã°ã€ã³ãžã®ãªãã·ã§ã³