예제 #1
0
        public void excluirListaDiretorio(List <Diretorio> listaDiretorio,
                                          Aba aba, string sCaminho)
        {
            Diretorio diretorio;

            for (int i = listaDiretorio.Count - 1; i >= 0; i--)
            {
                diretorio = listaDiretorio[i];

                if (diretorio.Aba.Codigo == aba.Codigo)
                {
                    if (sCaminho.Trim().Length > 0)
                    {
                        if (Rotinas.StartsStr(sCaminho, diretorio.Caminho))
                        {
                            listaDiretorio.Remove(diretorio);
                        }
                    }
                    else
                    {
                        listaDiretorio.Remove(diretorio);
                    }
                }
            }
        }
예제 #2
0
        public static void iniciarSistema()
        {
            Aba    aba;
            string sBanco = Rotinas.ExtractFilePath(Rotinas.ExecutablePath()) +
                            Path.DirectorySeparatorChar + "GuardaDir.db";
            ConexaoParams cp = new ConexaoParams();

            cp.Nome = sBanco;

            if (!Rotinas.FileExists(sBanco))
            {
                Rotinas.Conectar(cp);

                AbaBO.Instancia.criarTabelaAbas();

                aba = new Aba(1, "DISCO1", 0);
                AbaBO.Instancia.incluirAba(aba);

                ExtensaoBO.Instancia.criarTabelaExtensoes();
                DiretorioBO.Instancia.criarTabelaDiretorios();
                VisaoDAO.Instancia.criarVisao("consultadirpai");
                VisaoDAO.Instancia.criarVisao("consultadirfilho");
                VisaoDAO.Instancia.criarVisao("consultaarquivo");
            }
            else
            {
                Rotinas.Conectar(cp);
            }
        }
예제 #3
0
        public void PesquisarArvoreDiretorio(string sCaminho, Aba aba)
        {
            form.tabControl1.Page = aba.Ordem - 1;
            TreeView  arvore      = getArvoreAtual();
            TreeStore arvoreStore = (TreeStore)arvore.Model;

            StringList sl   = montaCaminho(sCaminho, false);           // Verifica Diretorio
            TreePath   path = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());

            if (path == null)
            {
                sl.Insert(1, sl[1] + Rotinas.BARRA_INVERTIDA);
                path = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());

                if (path == null)
                {
                    sl.Clear();
                    sl   = montaCaminho(sCaminho, true);   // Verifica Arquivo
                    path = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());

                    if (path == null)
                    {
                        sl.Insert(1, sl[1] + Rotinas.BARRA_INVERTIDA);
                        path = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());
                    }
                }
            }

            arvore.ExpandToPath(path);
            arvore.Selection.SelectPath(path);
        }
예제 #4
0
        public void PesquisarArvoreDiretorio(string sCaminho, Aba aba)
        {
            form.tabControl1.SelectedIndex = aba.Ordem - 1;
            TreeView   arvore = getArvoreAtual();
            StringList sl     = montaCaminho(sCaminho, false);         // Verifica Diretorio
            TreeNode   node   = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());

            if (node == null)
            {
                sl.Insert(1, sl[1] + Rotinas.BARRA_INVERTIDA);
                node = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());

                if (node == null)
                {
                    sl.Clear();
                    sl   = montaCaminho(sCaminho, true);   // Verifica Arquivo
                    node = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());

                    if (node == null)
                    {
                        sl.Insert(1, sl[1] + Rotinas.BARRA_INVERTIDA);
                        node = Arvore.Instancia.encontrarCaminhoPorNome(arvore, sl.ToArray());
                    }
                }
            }

            node.Expand();
            arvore.SelectedNode = node;
        }
예제 #5
0
        public void GerarPlanilha()
        {
            var filmes = new ServicoFilm().Listar().ToList();

            var aba1 = new Aba("filmes");

            aba1.AdicionarDados("film_id", "title", "description", "release_year", "language_id", "original_language_id", "rental_duration", "rental_rate", "length", "replacement_cost", "rating", "special_features", "last_update");
            filmes.ForEach(f =>
            {
                aba1.AdicionarDados(f.film_id, f.title, f.description, f.release_year, f.language_id, f.original_language_id, f.rental_duration, f.rental_rate, f.length, f.replacement_cost, f.rating, f.special_features, f.last_update);
            });

            var aba2 = new Aba("fabio");

            aba2.AdicionarDados("film_id", "title", "description", "release_year", "language_id", "original_language_id", "rental_duration", "rental_rate", "length", "replacement_cost", "rating", "special_features", "last_update");
            filmes.ForEach(f =>
            {
                aba2.AdicionarDados(f.film_id, f.title, f.description, f.release_year, f.language_id, f.original_language_id, f.rental_duration, f.rental_rate, f.length, f.replacement_cost, f.rating, f.special_features, f.last_update);
            });

            var abas = new Aba[] {
                aba1, aba2
            };

            var planilha = new Planilha(abas);
            var arquivo  = planilha.Arquivo;

            planilha.GerarArquivo(@"d:\temp", $"teste-{DateTime.Now:yyyyMMddHHmmss}.xlsx");
            Assert.IsTrue(arquivo != null, "Os dados não foram gerados.");
        }
        /// <summary>
        /// Transforma os dados do objeto worksheet em um array bidimensional
        /// </summary>
        /// <param name="ws"></param>
        /// <returns></returns>
        private object[,] LoadAba(Worksheet ws)
        {
            Aba aba = new Aba();

            object[,] array = ws.Cells.ExportArray(0, 0, ws.Cells.MaxDataRow + 1, ws.Cells.MaxDataColumn + 1);

            return array;
        }
예제 #7
0
        private Aba novoObjeto(SQLiteDataReader dr)
        {
            Aba ret = new Aba();

            ret.Codigo = dr.GetInt32(0);
            ret.Nome   = dr.GetString(1);
            return(ret);
        }
        private string SQLCompara(Aba aba1, Aba aba2, string caminho1,
                                  string caminho2)
        {
            string sSQL;

            sSQL = DiretorioBO.SQL_CONSULTA_ARQUIVO + " WHERE aba=" + aba1.Codigo
                   + " AND caminho LIKE " + Rotinas.QuotedStr(caminho1 + "%")
                   + " AND nome NOT IN (SELECT nome FROM Diretorios "
                   + " WHERE aba=" + aba2.Codigo + " AND caminho LIKE "
                   + Rotinas.QuotedStr(caminho2 + "%") + ")" + " ORDER BY 1, 2, 3";
            return(sSQL);
        }
예제 #9
0
        public int incluir(Aba obj)
        {
            int ret;

            conexao = Rotinas.getConexao();
            cmd     = new SQLiteCommand("insert into Abas(cod, nome) values(@1,@2)", conexao);
            cmd.Parameters.AddWithValue("@1", obj.Codigo);
            cmd.Parameters.AddWithValue("@2", obj.Nome);
            cmd.Prepare();
            ret = cmd.ExecuteNonQuery();
            return(ret);
        }
예제 #10
0
        public int alterar(Aba obj)
        {
            int ret;

            conexao = Rotinas.getConexao();
            cmd     = new SQLiteCommand("update Abas set nome=@1 where cod=@2", conexao);
            cmd.Parameters.AddWithValue("@1", obj.Nome);
            cmd.Parameters.AddWithValue("@2", obj.Codigo);
            cmd.Prepare();
            ret = cmd.ExecuteNonQuery();
            return(ret);
        }
예제 #11
0
        public void AlterarNomeAbaAtiva(IProgressoLog pLog)
        {
            Aba    aba  = getAbaAtual();
            string sAba = Dialogo.entrada("Digite o Novo Nome da Aba Ativa?",
                                          aba.Nome);

            if ((sAba != null) && (sAba.Trim().Length > 0))
            {
                aba.Nome = Rotinas.SubString(sAba, 1, 10);
                AbaBO.Instancia.alterarAba(aba);
                form.tabControl1.SetTabLabelText(form.tabControl1.GetNthPage(form.tabControl1.Page), sAba);
                CarregarDados(pLog, false, true);
            }
        }
예제 #12
0
        public int excluir(Aba aba, string sCaminho)
        {
            int ret;

            conexao = Rotinas.getConexao();

            cmd = new SQLiteCommand("delete from Diretorios where caminho like @1 and aba=@2", conexao);
            cmd.Parameters.AddWithValue("@1", sCaminho + "%");
            cmd.Parameters.AddWithValue("@2", aba.Codigo);
            cmd.Prepare();
            ret = cmd.ExecuteNonQuery();

            return(ret);
        }
예제 #13
0
        public void ExportarArquivo(TipoExportar tipo, IProgressoLog pLog)
        {
            string sExtensao = "";

            switch (tipo)
            {
            case TipoExportar.teTXT:
                sExtensao = "txt";
                break;

            case TipoExportar.teCSV:
                sExtensao = "csv";
                break;

            case TipoExportar.teHTML:
                sExtensao = "html";
                break;

            case TipoExportar.teXML:
                sExtensao = "xml";
                break;

            case TipoExportar.teSQL:
                sExtensao = "sql";
                break;
            }


            Aba aba = getAbaAtual();

            form.sdExportar.InitialDirectory = Rotinas.ExtractFilePath(Application.ExecutablePath);
            form.sdExportar.FileName         = aba.Nome + '.' + sExtensao;
            form.sdExportar.Filter           = Rotinas.FILTRO_EXPORTAR;
            DialogResult retval = form.sdExportar.ShowDialog();

            if (retval == DialogResult.OK)
            {
                FileInfo arquivo = new FileInfo(form.sdExportar.FileName);
                if (!arquivo.Exists)
                {
                    form.Cursor = Cursors.WaitCursor;
                    DiretorioBO.Instancia.exportarDiretorio(tipo, getAbaAtual(),
                                                            arquivo.FullName, pLog);
                    form.Cursor = Cursors.Default;

                    Dialogo.mensagemErro("Exportação realizada com sucesso!");
                }
            }
        }
예제 #14
0
        public void InformacoesDiretorioArquivo()
        {
            FrmInfoDiretorio frmInfo;
            ListView         tabela = getTabelaAtual();

            if (tabela.SelectedItems.Count > 0)
            {
                frmInfo = new FrmInfoDiretorio();
                Aba       aba = getAbaSelecionada();
                Diretorio dir = Tabela.Instancia.getLinhaSelecionada(tabela, false);
                dir.Aba.Nome = aba.Nome;
                frmInfo.setDiretorio(dir);
                frmInfo.ShowDialog();
            }
        }
예제 #15
0
        public void CarregarArvore(TreeView tvAba, Aba aba)
        {
            TreeIter  nodeRaiz    = new TreeIter();
            TreeStore storeArvore = (TreeStore)tvAba.Model;

            storeArvore.Clear();

            foreach (Diretorio diretorio in listaDiretorioPai)
            {
                if (diretorio.Aba.Codigo == aba.Codigo)
                {
                    AddItemArvore(storeArvore, diretorio, 0, nodeRaiz);
                }
            }
        }
예제 #16
0
        public void IncluirNovaAba()
        {
            Aba    aba;
            string sAba = Dialogo.entrada("Digite o Nome da Nova Aba?");

            if ((sAba != null) && (sAba.Trim().Length > 0))
            {
                aba        = new Aba();
                aba.Codigo = AbaBO.Instancia.retMaxCodAba(listaAbas);
                aba.Nome   = Rotinas.SubString(sAba, 1, 10);
                aba.Ordem  = listaAbas.Count + 1;
                AbaBO.Instancia.incluirAba(aba);
                IncluirNovaAba(aba.Nome);
                listaAbas.Add(aba);
            }
        }
예제 #17
0
        public void CarregarArvore(TreeView tvAba, Aba aba)
        {
            tvAba.Nodes.Clear();

            tvAba.BeginUpdate();

            nodeRaiz = new TreeNode(NO_RAIZ);
            foreach (Diretorio diretorio in listaDiretorioPai)
            {
                if (diretorio.Aba.Codigo == aba.Codigo)
                {
                    AddItemArvore(tvAba, diretorio, 0, nodeRaiz);
                }
            }

            tvAba.EndUpdate();
        }
예제 #18
0
        public void EncontrarItemLista(string nomeAba, string nome, string caminho)
        {
            form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);
            Aba aba = AbaBO.Instancia.pegaAbaPorNome(listaAbas, nomeAba);

            PesquisarArvoreDiretorio(caminho, aba);

            NodeView tabela = getTabelaAtual();
            TreePath path   = Tabela.Instancia.encontrarCaminhoPorNome(tabela, nome);

            if (path != null)
            {
                tabela.Selection.SelectPath(path);
            }

            form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Arrow);
        }
예제 #19
0
        public void ExportarArquivo(TipoExportar tipo, IProgressoLog pLog)
        {
            string sExtensao = "";

            switch (tipo)
            {
            case TipoExportar.teTXT:
                sExtensao = "txt";
                break;

            case TipoExportar.teCSV:
                sExtensao = "csv";
                break;

            case TipoExportar.teHTML:
                sExtensao = "html";
                break;

            case TipoExportar.teXML:
                sExtensao = "xml";
                break;

            case TipoExportar.teSQL:
                sExtensao = "sql";
                break;
            }

            Aba    aba        = getAbaAtual();
            string sDiretorio = Rotinas.ExtractFilePath(Rotinas.ExecutablePath());
            string sArquivo   = aba.Nome + '.' + sExtensao;

            if (EscolhaArquivo.salvarArquivo(EscolhaArquivo.FILTRO_EXPORTAR, sDiretorio, sArquivo))
            {
                FileInfo arquivo = new FileInfo(EscolhaArquivo.NomeArquivo);
                if (!arquivo.Exists)
                {
                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Watch);
                    DiretorioBO.Instancia.exportarDiretorio(tipo, getAbaAtual(),
                                                            arquivo.FullName, pLog);
                    form.GdkWindow.Cursor = new Gdk.Cursor(Gdk.CursorType.Arrow);

                    Dialogo.mensagemErro("Exportação realizada com sucesso!");
                }
            }
        }
예제 #20
0
        public void InformacoesDiretorioArquivo()
        {
            FrmInfoDiretorio frmInfo;
            NodeView         tabela = getTabelaAtual();
            TreeIter         iter;

            tabela.Selection.GetSelected(out iter);

            if (tabela.Selection.IterIsSelected(iter))
            {
                frmInfo = new FrmInfoDiretorio();
                Aba       aba = getAbaSelecionada();
                Diretorio dir = Tabela.Instancia.getLinhaSelecionada(tabela, false);
                dir.Aba.Nome = aba.Nome;
                frmInfo.setDiretorio(dir);
                frmInfo.Show();
            }
        }
예제 #21
0
        public void EncontrarItemLista(string nomeAba, string nome, string caminho)
        {
            form.Cursor = Cursors.WaitCursor;
            Aba aba = AbaBO.Instancia.pegaAbaPorNome(listaAbas, nomeAba);

            PesquisarArvoreDiretorio(caminho, aba);

            ListView tabela = getTabelaAtual();

            ListViewItem lvi = tabela.FindItemWithText(nome, false, 0, false);

            if (lvi != null)
            {
                tabela.FocusedItem = lvi;
                tabela.Select();
            }
            form.Cursor = Cursors.Default;
        }
예제 #22
0
 public bool alterarAba(Aba aba)
 {
     return(AbaDAO.Instancia.alterar(aba) > 0);
 }
예제 #23
0
 public bool incluirAba(Aba aba)
 {
     return(AbaDAO.Instancia.incluir(aba) > 0);
 }
예제 #24
0
 public string abaToSQL(Aba aba)
 {
     return("insert into Abas(cod, nome) values(" + aba.Codigo + ","
            + Rotinas.QuotedStr(aba.Nome) + ")");
 }
예제 #25
0
        public Diretorio atribuiDiretorio(int nAba, int nCodDirRaiz,
                                          string sNomeDirRaiz, string sDiretorio, bool bDiretorio,
                                          List <Diretorio> listaLocal, Arquivo arquivo,
                                          DiretorioOrdem dirOrdem)
        {
            int       nOrdem = dirOrdem.Ordem;
            Diretorio diretorio;
            string    sCaminho, sDir;
            FileInfo  fCaminho = null;

            sCaminho = removerDrive(sDiretorio);
            if (sDiretorio.Length > 0)
            {
                fCaminho = new FileInfo(sDiretorio);
            }

            if ((sCaminho.Length > 0) && (sNomeDirRaiz.Length > 0))
            {
                if (Rotinas.StartsStr(sNomeDirRaiz, sCaminho))
                {
                    sCaminho = Rotinas.SubString(sCaminho, sNomeDirRaiz.Length + 2,
                                                 sCaminho.Length);
                    sDir = Rotinas.SubString(sDiretorio, sNomeDirRaiz.Length + 2,
                                             sDiretorio.Length);
                    fCaminho = new FileInfo(sDir);
                }
                else
                {
                    sCaminho = sNomeDirRaiz + Rotinas.BARRA_INVERTIDA + sCaminho;
                    sDir     = sNomeDirRaiz + Rotinas.BARRA_INVERTIDA + sDiretorio;
                    fCaminho = new FileInfo(sDir);
                }
            }

            diretorio = new Diretorio();
            Aba  abaLocal  = new Aba();
            Tipo tipoLocal = new Tipo();

            abaLocal.Codigo      = nAba;
            diretorio.Codigo     = nCodDirRaiz;
            diretorio.Ordem      = nOrdem;
            diretorio.Nome       = arquivo.Nome;
            diretorio.Tamanho    = arquivo.Tamanho;
            diretorio.Modificado = arquivo.Modificado;
            diretorio.Atributos  = arquivoAtributos(fCaminho, bDiretorio);

            if (sDiretorio.Length == 0)
            {
                diretorio.Caminho    = arquivo.Nome;
                diretorio.CaminhoPai = "";
            }
            else
            {
                diretorio.Caminho    = sCaminho;
                diretorio.CaminhoPai = Rotinas.SubString(diretorio.Caminho, 1,
                                                         Rotinas.LastDelimiter(Rotinas.BARRA_INVERTIDA,
                                                                               diretorio.Caminho) - 1);
            }

            if (bDiretorio)
            {
                tipoLocal.Codigo = 'D';
                if (nOrdem == 1)
                {
                    diretorio.CodDirPai = 0;
                }
                else
                {
                    diretorio.CodDirPai = retCodDirPai(abaLocal.Codigo,
                                                       diretorio.CaminhoPai, listaLocal);
                }
            }
            else
            {
                tipoLocal.Codigo    = 'A';
                diretorio.CodDirPai = retCodDirPai(abaLocal.Codigo,
                                                   diretorio.CaminhoPai, listaLocal);
            }
            abaLocal.Nome              = "";
            diretorio.Aba              = abaLocal;
            diretorio.NomePai          = "";
            diretorio.TamanhoFormatado = MontaTamanho(diretorio.Tamanho);
            if (tipoLocal.Codigo == 'D')
            {
                tipoLocal.Nome = "Diretório";
            }
            else
            {
                tipoLocal.Nome = "Arquivo";
            }
            diretorio.Tipo = tipoLocal;
            diretorio.ModificadoFormatado = Rotinas.formataDate(
                Rotinas.FORMATO_DATAHORA, diretorio.Modificado);
            diretorio.CaminhoOriginal = sDiretorio;

            nOrdem++;

            dirOrdem.Ordem = nOrdem;

            return(diretorio);
        }
예제 #26
0
 public bool excluirAba(Aba aba)
 {
     return(AbaDAO.Instancia.excluir(aba.Codigo) > 0);
 }
예제 #27
0
 public bool excluirDiretorio(Aba aba, string sCaminho)
 {
     return(DiretorioDAO.Instancia.excluir(aba, sCaminho) > 0);
 }
예제 #28
0
 public void ExcluirDados(Aba aba, string sCaminho)
 {
     DiretorioBO.Instancia.excluirListaDiretorio(listaDiretorioPai, aba, sCaminho);
     DiretorioBO.Instancia.excluirListaDiretorio(listaDiretorioFilho, aba, sCaminho);
     DiretorioBO.Instancia.excluirListaDiretorio(listaArquivos, aba, sCaminho);
 }
예제 #29
0
        public void exportarDiretorio(TipoExportar tipo, Aba aba,
                                      string sNomeArquivo, IProgressoLog progressoLog)
        {
            string           sTexto = "", sCR, sTAB, sTAB2, sSQL, sCondicaoTotal;
            Aba              abaLocal = new Aba();
            StringList       listaLocal;
            List <Diretorio> listaDiretorio;

            sTAB  = "\t";
            sTAB2 = "\t\t";
            sCR   = "\n";

            sCondicaoTotal = " where aba=" + aba.Codigo;
            sSQL           = SQL_CONSULTA_ARQUIVO + sCondicaoTotal + " order by 1, 2, 3";
            listaDiretorio = carregarDiretorio(sSQL, sCondicaoTotal, progressoLog);

            listaLocal = new StringList();

            switch (tipo)
            {
            case TipoExportar.teCSV: {
                sTexto = "\"Aba\";\"Nome\";\"TamanhoBytes\";\"Tamanho\";"
                         + "\"Tipo\";\"Modificado\";\"Atributos\";\"Caminho\"";
            }
            break;

            case TipoExportar.teHTML: {
                sTexto  = "<!DOCTYPE html>" + sCR;
                sTexto += "<html>" + sCR;
                sTexto += "<body>" + sCR;
                sTexto += "<table border=\"1\" cellpadding=\"5\" cellspacing=\"0\">"
                          + sCR;
                sTexto += sTAB + "<tr>" + sCR;
                sTexto += sTAB2 + "<th>Aba</th>" + sCR;
                sTexto += sTAB2 + "<th>Nome</th>" + sCR;
                sTexto += sTAB2 + "<th>Tamanho</th>" + sCR;
                sTexto += sTAB2 + "<th>Tamanho Formatado</th>" + sCR;
                sTexto += sTAB2 + "<th>Tipo</th>" + sCR;
                sTexto += sTAB2 + "<th>Modificado</th>" + sCR;
                sTexto += sTAB2 + "<th>Atributos</th>" + sCR;
                sTexto += sTAB2 + "<th>Caminho</th>" + sCR;
                sTexto += sTAB + "</tr>";
            }
            break;

            case TipoExportar.teXML: {
                sTexto = "<diretorio>";
            }
            break;

            case TipoExportar.teSQL: {
                abaLocal.Codigo = listaDiretorio[0].Aba.Codigo;
                abaLocal.Nome   = listaDiretorio[0].Aba.Nome;
                sTexto          = AbaBO.Instancia.abaToSQL(abaLocal);
            }
            break;
            }

            if (sTexto.Length > 0)
            {
                listaLocal.Add(sTexto);
            }

            foreach (Diretorio diretorio in listaDiretorio)
            {
                if (diretorio.Aba.Codigo == aba.Codigo)
                {
                    if (tipo == TipoExportar.teTXT)
                    {
                        sTexto = diretorioToTXT(diretorio);
                    }
                    else if (tipo == TipoExportar.teCSV)
                    {
                        sTexto = diretorioToCSV(diretorio);
                    }
                    else if (tipo == TipoExportar.teHTML)
                    {
                        sTexto = diretorioToHTML(diretorio);
                    }
                    else if (tipo == TipoExportar.teXML)
                    {
                        sTexto = diretorioToXML(diretorio);
                    }
                    else if (tipo == TipoExportar.teSQL)
                    {
                        sTexto = diretorioToSQL(diretorio, true) + ";";
                    }

                    listaLocal.Add(sTexto);
                }
            }

            if (tipo == TipoExportar.teHTML)
            {
                sTexto += sCR + "</table>" + sCR;
                sTexto += "</body>" + sCR;
                sTexto += "</html>" + sCR;
            }
            else if (tipo == TipoExportar.teXML)
            {
                sTexto = "</diretorio>";
            }
            listaLocal.Add(sTexto);

            listaLocal.SaveToFile(sNomeArquivo);

            listaDiretorio.Clear();
            listaLocal.Clear();
        }
예제 #30
0
        public int importarDiretorioViaXML(Aba aba, string sNomeArquivo,
                                           List <Diretorio> listaDirPai,
                                           IProgressoLog progressoLog)
        {
            string           sTexto;
            int              nArquivo, resultado;
            StringList       listaLocal;
            DiretorioXML     diretorioXML;
            List <Diretorio> listaDiretorio;

            resultado      = 0;
            diretorioXML   = new DiretorioXML();
            listaDiretorio = new List <Diretorio>();
            listaLocal     = new StringList();
            listaLocal.LoadFromFile(sNomeArquivo);

            if (!listaLocal[0].Equals("<diretorio>"))
            {
                resultado = -1;
            }
            else
            {
                nArquivo = 0;
                foreach (string sTexto1 in listaLocal)
                {
                    sTexto = sTexto1.Trim();

                    nArquivo = XMLParaDiretorio(sTexto, nArquivo, diretorioXML);

                    if (nArquivo == -1)
                    {
                        resultado = -1;
                        break;
                    }
                    else if (nArquivo == 13)
                    {
                        nArquivo = 1;
                        diretorioXML.Diretorio.Aba = aba;
                        listaDiretorio.Add(diretorioXML.Diretorio);

                        if (verificaCodDir(aba.Codigo,
                                           diretorioXML.Diretorio.Caminho,
                                           listaDirPai))
                        {
                            resultado = -2;
                            break;
                        }

                        diretorioXML.Diretorio = new Diretorio();
                    }
                    else if (nArquivo == -3)
                    {
                        resultado = nArquivo;
                    }
                    else
                    {
                        nArquivo++;
                    }
                }
            }

            salvarDiretorio(listaDiretorio, progressoLog);
            listaDiretorio.Clear();

            return(resultado);
        }
예제 #31
0
        private Diretorio novoObjeto(SQLiteDataReader dr)
        {
            Diretorio ret = new Diretorio();
            Aba       aba = new Aba();
            Tipo      tipo;

            aba.Codigo = dr.GetInt32(0);
            ret.Codigo = dr.GetInt32(1);
            ret.Ordem  = dr.GetInt32(2);

            if (!dr.IsDBNull(3))
            {
                ret.CodDirPai = dr.GetInt32(3);
            }
            else
            {
                ret.CodDirPai = -1;
            }

            if (!dr.IsDBNull(4))
            {
                ret.Nome = dr.GetString(4);
            }

            ret.Tamanho = dr.GetDecimal(5);

            tipo           = new Tipo(dr.GetString(6)[0], "");
            ret.Modificado = Rotinas.StringToDate(dr.GetString(7));
            if (!dr.IsDBNull(8))
            {
                ret.Atributos = dr.GetString(8);
            }
            if (!dr.IsDBNull(9))
            {
                ret.Caminho = dr.GetString(9);
            }
            if (!dr.IsDBNull(10))
            {
                aba.Nome = dr.GetString(10);
            }
            ret.Aba = aba;
            if (!dr.IsDBNull(11))
            {
                ret.NomePai = dr.GetString(11);
            }
            if (!dr.IsDBNull(12))
            {
                ret.CaminhoPai = dr.GetString(12);
            }
            ret.TamanhoFormatado =
                DiretorioBO.Instancia.MontaTamanho(ret.Tamanho);
            if (tipo.Codigo == 'D')
            {
                tipo.Nome = "Diretório";
            }
            else
            {
                tipo.Nome = "Arquivo";
            }
            ret.Tipo = tipo;
            ret.ModificadoFormatado = Rotinas.formataDate(
                Rotinas.FORMATO_DATAHORA, ret.Modificado);

            return(ret);
        }