Contains() public méthode

返回是否包含目录项
public Contains ( String name ) : System.Boolean
name String
Résultat System.Boolean
Exemple #1
0
        /// <summary>
        /// 添加一个目录目录项
        /// </summary>
        /// <param name="name"></param>
        /// <param name="dir"></param>
        /// <returns></returns>
        public Boolean Add(String name, INodeDirectory dir)
        {
            if (Contains(name))
            {
                return(false);
            }
            if (dir.Contains(".."))
            {
                return(false);
            }

            entries[name] = dir.inode.index;
            dir.inode.data.linkCount++;
            dir.inode.Save();
            dir.AddParent(inode.index);

            Save();
            return(true);
        }
Exemple #2
0
            public File(VFSCore vfs, String path, FileMode fileMode)
            {
                this.vfs = vfs;

                var directory = VFS.GetPathDirectory(path);
                var name      = VFS.GetPathName(path);

                VFS.AssertNameValid(name);

                INodeDirectory dir = INodeDirectory.Resolve(vfs, directory);

                if (dir == null)
                {
                    throw new Exception("无法访问目录");
                }
                switch (fileMode)
                {
                case FileMode.CreateNew:
                    if (dir.Contains(name))
                    {
                        throw new Exception("文件已存在");
                    }
                    CreateFile(dir, name);
                    break;

                case FileMode.Create:
                    if (dir.Contains(name))
                    {
                        OpenFile(dir, name);
                        inode.Resize(0);
                    }
                    else
                    {
                        CreateFile(dir, name);
                    }
                    break;

                case FileMode.Open:
                    if (!dir.Contains(name))
                    {
                        throw new Exception("文件未找到");
                    }
                    OpenFile(dir, name);
                    break;

                case FileMode.OpenOrCreate:
                    if (dir.Contains(name))
                    {
                        OpenFile(dir, name);
                    }
                    else
                    {
                        CreateFile(dir, name);
                    }
                    break;

                case FileMode.Truncate:
                    if (!dir.Contains(name))
                    {
                        throw new Exception("文件未找到");
                    }
                    OpenFile(dir, name);
                    inode.Resize(0);
                    break;

                case FileMode.Append:
                    if (!dir.Contains(name))
                    {
                        CreateFile(dir, name);
                    }
                    else
                    {
                        OpenFile(dir, name);
                        position = inode.data.sizeByte;
                    }
                    break;

                default:
                    throw new ArgumentException();
                }
            }
Exemple #3
0
        /// <summary>
        /// 添加一个目录目录项
        /// </summary>
        /// <param name="name"></param>
        /// <param name="dir"></param>
        /// <returns></returns>
        public Boolean Add(String name, INodeDirectory dir)
        {
            if (Contains(name))
            {
                return false;
            }
            if (dir.Contains(".."))
            {
                return false;
            }

            entries[name] = dir.inode.index;
            dir.inode.data.linkCount++;
            dir.inode.Save();
            dir.AddParent(inode.index);

            Save();
            return true;
        }
Exemple #4
0
 /// <summary>
 /// 目录下是否包含一个文件或目录
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 public Boolean Contains(String name)
 {
     return(dir.Contains(name));
 }