mt5225 / dokan

Automatically exported from code.google.com/p/dokan
0 stars 0 forks source link

Using PureSync on MirrorFS does not return any files #192

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Compile the .NetMirrorFS
2. Use pureSync 2.7 to set up a backup from the Mirror drive to somewhere else
3. Press the compare button

What is the expected output? 
http://liquesce.codeplex.com/releases/view/54504

What do you see instead?
Only get the directories listed, no files

What version of the product are you using?
0.5.3

On what operating system?
Tested on XP SP3 and Win 7 x64

Please provide any additional information below.
It seems like the expamsion of the DirName<"* inside the function that Dokan is 
using to expand DOS_STAR functions is not working correctly.
Longs discussions and tests etc in this thread:-
http://liquesce.codeplex.com/workitem/7556

Original issue reported on code.google.com by smurf...@gmail.com on 12 Nov 2010 at 5:16

GoogleCodeExporter commented 9 years ago
Seems like that regardless how the files are retrieved from the Impmented File 
system, Dokan wil always attempt to perform it's version of the matching code
See  DbgPrintW(L"FileMatch? : %s (%s,%d,%d)\n", find->FindData.cFileName,
(pattern ? pattern : L"null"),EventContext->Directory.FileIndex, index);
                // pattern is not specified or pattern match is ignore cases
                if (!pattern || DokanIsNameInExpression(pattern, find->FindData.cFileName, TRUE)) {

PureSync uses a DirName<"* systeax to get all the files from a directory called 
DirName, but Dokan then removes all those file to the return caller via it's 
aways implemented MatchFiles call in Directory.c

Original comment by smurf...@gmail.com on 12 Nov 2010 at 6:01

GoogleCodeExporter commented 9 years ago
The MatchFiles has a parameter called PatternCheck, this is set to FALSE if the 
FindFilesWithPatternCode hae been implemented, this does not disable the 
DokanIsNameInExpression from being called with MatchFiles !

Original comment by smurf...@gmail.com on 12 Nov 2010 at 6:15

GoogleCodeExporter commented 9 years ago
Dokan supports DOS_STAR, DOS_QM and DOS_DOT. So there should be a bug in 
DokanIsNameInExpression.

DokanIsNameInExpression emulates FsRtlIsNameInExpression.
http://msdn.microsoft.com/en-us/library/ff546850(v=VS.85).aspx

And when PatternCheck == FALSE, DokanIsNameInExpression is not called. pattern 
is NULL in that case in MatchFiles function.

Original comment by asa...@gmail.com on 8 Jan 2011 at 3:27

GoogleCodeExporter commented 9 years ago
Hi,
I tested DokanIsNameInExpression with several patterns and I couldn't find any 
issue.
Could you give me an example of wrong result?

For example:
Expression: DirName<"*
Name: DirNameTest

Original comment by asa...@gmail.com on 8 Jan 2011 at 7:28

GoogleCodeExporter commented 9 years ago
I think the easiest thing to do is to install PureSync 2.7 (It's free) and see 
what patterns it is using. (The newest version is 2.8.1)
- The Pattersn they use work with norml NTFS directories (i.e. they find 
subdirs and files), but in a Dokan mounted drive (Via Mirror and my 
implementation(s)) - it only get the directory and nothing else.
Also please see the pictures attached to 
http://liquesce.codeplex.com/workitem/7556

Original comment by smurf...@gmail.com on 8 Jan 2011 at 10:20