Summary description for readdirres.
Exemplo n.º 1
0
        public readdirres(string dirName, uint count)
        {
            DirectoryInfo dir = new DirectoryInfo(dirName);

            FileSystemInfo[] files = dir.GetFileSystemInfos();

            entries = new entry[files.Length + 2];


            // Don't create new entries in FileTable for "." and "..".  Find the real dirs. and use those id's
            uint dirFileId = FileTable.LookupFileHandle(dirName).Index;

            entries[0] = new entry(".", dirName + @"\.", 1, dirFileId);

            if (dirFileId == 1)             // root
            {
                entries[1] = new entry("..", dirName + @"\..", files.Length == 0 ? count : 2, 1);
            }
            else
            {
                entries[1] = new entry("..", dirName + @"\..", files.Length == 0 ? count : 2, FileTable.LookupFileHandle(dir.Parent.FullName).Index);
            }


            uint i = 2;

            foreach (FileSystemInfo file in files)
            {
                if (files.Length == i - 1)
                {
                    entries[i] = new entry(file, count);
                }
                else
                {
                    entries[i] = new entry(file, ++i);
                }
            }
        }
Exemplo n.º 2
0
        public readdirres(string dirName, uint count)
        {
            DirectoryInfo dir = new DirectoryInfo(dirName);

            FileSystemInfo[] files = dir.GetFileSystemInfos();

            entries = new entry[files.Length + 2];

            // Don't create new entries in FileTable for "." and "..".  Find the real dirs. and use those id's
            uint dirFileId = FileTable.LookupFileHandle(dirName).Index;

            entries[0] = new entry(".", dirName + @"\.", 1, dirFileId);

            if (dirFileId == 1) // root
                entries[1] = new entry("..", dirName + @"\..", files.Length == 0 ? count : 2, 1);
            else
                entries[1] = new entry("..", dirName + @"\..", files.Length == 0 ? count : 2, FileTable.LookupFileHandle(dir.Parent.FullName).Index);

            uint i = 2;

            foreach (FileSystemInfo file in files)
                if (files.Length == i - 1)
                    entries[i] = new entry(file, count);
                else
                    entries[i] = new entry(file, ++i);
        }