internal override bool IsResultIncluded(SearchResult result)
        {
            bool includeFile = _includeFiles && Win32FileSystemEnumerableHelpers.IsFile(result.FindData);
            bool includeDir  = _includeDirs && Win32FileSystemEnumerableHelpers.IsDir(result.FindData);

            Contract.Assert(!(includeFile && includeDir), result.FindData.cFileName + ": current item can't be both file and dir!");
            return(includeFile || includeDir);
        }
            internal override bool IsResultIncluded(string fullPath, string userPath, ref Interop.mincore.WIN32_FIND_DATA findData, out FileInfo result)
            {
                if (Win32FileSystemEnumerableHelpers.IsFile(ref findData))
                {
                    string fullPathFinal = Path.Combine(fullPath, findData.cFileName);
                    result = new FileInfo(fullPathFinal, ref findData);
                    return(true);
                }

                result = null;
                return(false);
            }
            internal override bool IsResultIncluded(string fullPath, string userPath, ref Interop.mincore.WIN32_FIND_DATA findData, out string result)
            {
                if ((_includeFiles && Win32FileSystemEnumerableHelpers.IsFile(ref findData)) ||
                    (_includeDirs && Win32FileSystemEnumerableHelpers.IsDir(ref findData)))
                {
                    result = Path.Combine(userPath, findData.cFileName);
                    return(true);
                }

                result = null;
                return(false);
            }
示例#4
0
            internal override bool IsResultIncluded(string fullPath, string userPath, ref Interop.Kernel32.WIN32_FIND_DATA findData, out FileSystemInfo result)
            {
                if (Win32FileSystemEnumerableHelpers.IsFile(ref findData))
                {
                    string fullPathFinal = Path.Combine(fullPath, findData.cFileName.GetStringFromFixedBuffer());
                    result = new FileInfo(fullPathFinal, ref findData);
                    return(true);
                }
                else if (Win32FileSystemEnumerableHelpers.IsDir(ref findData))
                {
                    string fullPathFinal = Path.Combine(fullPath, findData.cFileName.GetStringFromFixedBuffer());
                    result = new DirectoryInfo(fullPathFinal, ref findData);
                    return(true);
                }

                result = null;
                return(false);
            }
        internal override FileSystemInfo CreateObject(SearchResult result)
        {
            bool   isFile = Win32FileSystemEnumerableHelpers.IsFile(result.FindData);
            bool   isDir  = Win32FileSystemEnumerableHelpers.IsDir(result.FindData);
            String name   = result.FullPath;

            if (isDir)
            {
                IFileSystemObject fileSystemObject = new Win32FileSystem.Win32FileSystemObject(name, result.FindData, asDirectory: true);
                DirectoryInfo     di = new DirectoryInfo(name, fileSystemObject);
                return(di);
            }
            else
            {
                Contract.Assert(isFile);
                IFileSystemObject fileSystemObject = new Win32FileSystem.Win32FileSystemObject(name, result.FindData, asDirectory: false);
                FileInfo          fi = new FileInfo(name, fileSystemObject);
                return(fi);
            }
        }
 internal override bool IsResultIncluded(SearchResult result)
 {
     return(Win32FileSystemEnumerableHelpers.IsFile(result.FindData));
 }