Example #1
0
        /// <summary>
        ///  Get a single child by name
        /// </summary>
        ///  @param [in] name -- name of child. If name is "..", it gets parent. If name is ".", return itself </param>
        private SqlFsNode __getChild(string name)
        {
            SqlFsNode fsNode = null;

            if (name.Equals(SqlFsConst.CURDIR))
            {
                fsNode = this;           // current dir
            }
            else if (name.Equals(SqlFsConst.PARENTDIR))
            {
                // parent or itself if already root
                fsNode = (this.ID.Equals(SqlFsConst.ROOTDIRID) ? this : this.Parent);
            }
            else
            {
                Cursor c = getEntryByName(name, SqlFsConst.FSTYPE.ANY);
                if (c != null)
                {
                    c.moveToFirst();
                    fsNode = SqlFsNode.getFsNode(db, fsLocker, c);
                    c.close();
                }
                else
                {
                    SqlFsErrCode.CurrentError = SqlFsErrCode.FsErr.NoEntryByName;
                }
            }

            return(fsNode);
        }
Example #2
0
        //////////////////////////FS operations ///////////////////////////////////

        ///  @param [in] id -- get entry using ID directly </param>
        internal static SqlFsNode getFsNodeByID(SQLiteDatabase db, SqlFsLocker fsLocker, FsID id)
        {
            SqlFsNode fsNode = null;

            string @where = SqlStr.genWhere(new SqlStr.SqlSimpCond(SqlFs.FSBLOCK.fsID.ToString(), "=", id));
            Cursor c      = null;

            try
            {
                c = db.query(SqlFs.DBNAMES.FsBlock.ToString(), new string[] { SqlFs.FSBLOCK.fsID.ToString(), SqlFs.FSBLOCK.fsType.ToString() }, @where, null, null, null, null);

                if (c.moveToFirst())
                {
                    fsNode = SqlFsNode.getFsNode(db, fsLocker, c);
                }
            }
            catch (Exception e)
            {
                SqlFsLog.debug(e);
                SqlFsErrCode.CurrentError = FsErr.GetFieldError;
            }
            finally
            {
                SqlFsFunc.close(c);
            }

            return(fsNode);
        }
Example #3
0
        /// <summary>
        ///  Get a list of children (dirs and files)
        /// </summary>
        private List <SqlFsNode> __getChildList()
        {
            List <SqlFsNode> childList = null;
            Cursor           c         = getEntryByName(null, SqlFsConst.FSTYPE.ANY);

            if (c != null)
            {
                c.moveToFirst();
                childList = new List <SqlFsNode>(c.Count);
                do
                {
                    SqlFsNode fsNode = SqlFsNode.getFsNode(db, fsLocker, c);
                    if (fsNode != null)
                    {
                        childList.Add(fsNode);
                    }
                } while (c.moveToNext());
                c.close();
            }

            return(childList);
        }