public static PhpArray scandir(Context ctx, string directory, ScanDirSortOrder sorting_order = ScanDirSortOrder.Ascending)
        {
            if (PhpStream.ResolvePath(ctx, ref directory, out var wrapper, CheckAccessMode.Directory, CheckAccessOptions.Empty))
            {
                var listing = wrapper.Listing(ctx.RootPath, directory, 0, null);
                if (listing != null)
                {
                    switch (sorting_order)
                    {
                    case ScanDirSortOrder.Ascending:
                        listing.Sort();
                        break;

                    case ScanDirSortOrder.Descending:
                        listing.Sort();
                        listing.Reverse();
                        break;
                    }

                    //
                    return(new PhpArray(listing));
                }
            }
            return(null); // false
        }
示例#2
0
        public static PhpArray scandir(Context ctx, string directory, ScanDirSortOrder sorting_order = ScanDirSortOrder.Ascending)
        {
            if (PhpStream.ResolvePath(ctx, ref directory, out var wrapper, CheckAccessMode.Directory, CheckAccessOptions.Empty))
            {
                var listing = wrapper.Listing(ctx.RootPath, directory, 0, null);
                if (listing != null)
                {
                    var ret = new PhpArray(listing); // create the array from the system one
                    switch (sorting_order)
                    {
                    case ScanDirSortOrder.Ascending:
                        Arrays.sort(ctx, ret, ComparisonMethod.String);
                        break;

                    case ScanDirSortOrder.Descending:
                        Arrays.rsort(ctx, ret, ComparisonMethod.String);
                        break;
                    }
                    return(ret);
                }
            }
            return(null); // false
        }