示例#1
0
        // CleanDirectoryRecursively(buffer<bytes<0x301>, 0x19, 0x301> path)
        public long CleanDirectoryRecursively(ServiceCtx context)
        {
            string name = ReadUtf8String(context);

            string dirName = _provider.GetFullPath(name);

            if (!_provider.DirectoryExists(dirName))
            {
                return(MakeError(ErrorModule.Fs, FsErr.PathDoesNotExist));
            }

            if (IsPathAlreadyInUse(dirName))
            {
                return(MakeError(ErrorModule.Fs, FsErr.PathAlreadyInUse));
            }

            foreach (DirectoryEntry entry in _provider.GetEntries(dirName))
            {
                if (_provider.DirectoryExists(entry.Path))
                {
                    _provider.DeleteDirectory(entry.Path, true);
                }
                else if (_provider.FileExists(entry.Path))
                {
                    _provider.DeleteFile(entry.Path);
                }
            }

            return(0);
        }
示例#2
0
        // CleanDirectoryRecursively(buffer<bytes<0x301>, 0x19, 0x301> path)
        public long CleanDirectoryRecursively(ServiceCtx Context)
        {
            string Name = ReadUtf8String(Context);

            string DirName = Provider.GetFullPath(Name);

            if (!Provider.DirectoryExists(DirName))
            {
                return(MakeError(ErrorModule.Fs, FsErr.PathDoesNotExist));
            }

            if (IsPathAlreadyInUse(DirName))
            {
                return(MakeError(ErrorModule.Fs, FsErr.PathAlreadyInUse));
            }

            foreach (DirectoryEntry Entry in Provider.GetEntries(DirName))
            {
                if (Provider.DirectoryExists(Entry.Path))
                {
                    Provider.DeleteDirectory(Entry.Path, true);
                }
                else if (Provider.FileExists(Entry.Path))
                {
                    Provider.DeleteFile(Entry.Path);
                }
            }

            return(0);
        }