Beispiel #1
0
        // strStart, // 起始路径, ""表示根
        Package GetOneLevelDirPackage(string strStart)
        {
            int nRet;

            byte [] baPackage = null;

            // bool bSetDefault = false;	// 表示是否使用过缺省帐户

            //bool bFirstLogin = true;

            Package package = new Package();

            // CWaitCursor cursor;
            if (Channel == null)
            {
                Channel = channelarray.CreateChannel(0);
            }

            Debug.Assert(Channel != null, "channel尚未初始化");

            Cursor.Current = Cursors.WaitCursor;
            if (Stop != null)
            {
                Stop.OnStop += new StopEventHandler(this.DoStop);
                Stop.SetMessage("正在列目录 '" + strStart + "' ...");
                Stop.BeginLoop();
            }
            try
            {
                nRet = Channel.Dir(strStart,
                                   out baPackage);
            }
            finally
            {
                if (Stop != null)
                {
                    Stop.EndLoop();
                    Stop.OnStop -= new StopEventHandler(this.DoStop);
                    Stop.Initial("");
                }

                Cursor.Current = Cursors.Default;
            }

            if (nRet == -1)
            {
                Channel.ErrorBox(this,
                                 "restree",
                                 "列目录发生错误");

                goto ERROR1;
            }


            package.LoadPackage(baPackage, Channel.GetPathEncoding(strStart));
            package.Parse(PackageFormat.String);

            return(package);

ERROR1:
            return(null);
        }