none
Busca através de comando DIR retorna arquivos não esperados. RRS feed

  • Pergunta

  • Olá
    Curso Ciência da Computação, na faculdade ICEC (UNIP) em Cuiabá/MT.

    Como trabalho, temos um software que manipula e gerencia imagens, relacionando as imagens a um código, sem banco de dados, apenas renomeando os arquivos.

    EXEMPLO:
    Código: 123
    Quantidade de Imagens Selecionadas: 2
    O sistema Copia as imagens selecionadas para uma determinada pasta renomeando-as com os nomes: "123p01.jpg" e "123p02.jpg"

    O software também realiza consultas através do código, mostrando todas as imagens relacionadas ao código (nome da imagem).


    PROBLEMA:
    ==============
    Trabalhando com Windows Server 2003 em rede local para armazenar as imagens.

    Em grande volume de arquivos JPG copiados pelo software, ocasionalmente quando realizo consulta o software retorna além das imagens relacionadas ao código(nome do arquivo) outras de códigos(nomes) diferentes.


    TESTES:
    ==============
    Através do EXPLORER navego até a pasta e faço uma busca [F3] pelo código. 123*.* e ele me retorna corretamente.

    Através do CMD do Prompt MS-DOS utilizando o comando DIR busco o código. 123*.* ele me retorna informações a mais, como na busca do software.

    IMAGEM ABAIXO DEMONSTRA O PROBLEMA:
    http://farm8.staticflickr.com/7092/7336456778_3ab33ca7bb_b.jpg

    OBSERVAÇÕES:
    ==============
    Verifiquei este problema acontencendo em outras máquinas com Windows XP, que testamos salvar grande volume de imagens nesta maquina de forma local e através da rede.

    A solução encontrada para este problema é individual. Quando verifico algum arquivo listado de forma errada, excluo o arquivo excedente e o salvo novamente.

    Já executei SCANDISK, DESFRAGMENTADOR, ANTIVÍRUS, DESATIVEI/ATIVEI O SERVIÇO DE INDEXAÇÃO DO DISCO, e não resolveram este problema.

    Creio que possa ser algum problema de indexação, ou algo assim.

    Obrigado pela atenção.

    Aguardo contato.

    Thiago Morais
    Academico de Ciência da Computação


    segunda-feira, 25 de junho de 2012 19:57

Respostas

  • Thiago,

    Vi que para um número grande de arquivos o Windows se comporta desta forma, também trabalho com milhares de arquivos, no meu caso são logs. Por exemplo se busco 2010*.log ele retorna alguns arquivos como 2011011107100900000E6C.log e 2012121117100800000A0C.log na busca, sempre em torno de 2 a 20 arquivos acabam vindo erroneamente. Creio que seja algum problema no core do Windows nas tabelas de indexação de arquivos. Você vai ver o mesmo erro nos comandos move, copy, até mesmo o robocopy apresentam o mesmo problema quando passamos buscas em diretórios com muitos arquivos (no meu caso testei em diretórios com mais de 5 mil arquivos).

    Testando alguns programas como o UNIX tools (comando ls e mv) no windows também encontrei o mesmo problema.

    ls 2010*.log

    2011041901401400001468.log  201109022305260000119C.log
    201104201140040000110C.log  201109022340060000149C.log
    2011042206401900001744.log  20110904110538000017A4.log
    20110422134002000014DC.log  20110904154014000014A8.log
    201104221640060000134C.log  2011090423301600001718.log

    Fiz uma tentativa de usar o Linux direto a partir de NFS para rodar a busca do diretório Windows e o Linux processa corretamente.

    root@ABSDCSV003:/mnt/ABSDCSV004/Log/2011# ls 2010*.log
    ls: cannot access 2010*.log: No such file or directory
    root@ABSDCSV003:/mnt/ABSDCSV004/Log/2011# ls 2012*.log
    ls: cannot access 2012*.log: No such file or directory

    Atencisamente,

    Ernesto Niklaus

    segunda-feira, 21 de janeiro de 2013 11:43

Todas as Respostas

  • Thiago,

    Olha esse link se lhe ajuda:

    http://www.tiexpert.net/sistema-operacional/comandos-de-dos/dir.php


    MCP-W2K3/MCDST/MCSA/MCTS SE A RESPOSTA FOR UTIL, CLASSIFIQUE-A!

    terça-feira, 26 de junho de 2012 11:19
  • Olá Gustavo, infelizmente não ajudou. Eu conheço o camando DIR.

    Meu problema é bem pontual.
    O windows está ocasionalmente, gravando os arquivos de alguma forma errada, sendo que quando vou buscar estes arquivos (e coincidir de serem os que foram gravados de forma errada) por meio de algum comando, sendo DIR no DOS, ou através de algum outro software gerado através outra linguagem de programação (no meu caso, tenho um compilado pelo delphi), os arquivos resultantes da busca são excedentes.

    Ou seja, qualquer busca através de alguma instrução de comando feita retorna excesso.

    Como apresentado na imagem abaixo:

    Fui realizar uma busca, através do comando DIR, por arquivos que continham no nome o texto: "142691"
    RESULTADO:
    A busca me retornou os arquivos que realmente continham "142691" e também outros que NÃO tinham nenhum vínculo ("142001" , "142240" , "142280").

    Estes arquivos que não possuem vínculo que são os arquivos gravados de forma errada.
    Excluindo estes arquivos e salvando-os novamente, eles funcionam, e não aparecem novamente nesta mesma busca.

    Como tenho um grande volume de arquivos, bem mais que 100MIL, gostaria de saber como eu poderia corrigir isto de forma generalizada. Através de alguma ferramenta que possa verificar as tabelas de indexação do Windows e corrigi-las (não sei se realmente é isto, mas creio eu que possa ser este o problema).

    Já executei SCANDISK, DESFRAGMENTADOR, ANTIVÍRUS, DESATIVEI/ATIVEI O SERVIÇO DE INDEXAÇÃO DO DISCO, e não resolveram este problema.

    Aguardo notícias.




    terça-feira, 26 de junho de 2012 13:41
  • Thiago,

    Vi que para um número grande de arquivos o Windows se comporta desta forma, também trabalho com milhares de arquivos, no meu caso são logs. Por exemplo se busco 2010*.log ele retorna alguns arquivos como 2011011107100900000E6C.log e 2012121117100800000A0C.log na busca, sempre em torno de 2 a 20 arquivos acabam vindo erroneamente. Creio que seja algum problema no core do Windows nas tabelas de indexação de arquivos. Você vai ver o mesmo erro nos comandos move, copy, até mesmo o robocopy apresentam o mesmo problema quando passamos buscas em diretórios com muitos arquivos (no meu caso testei em diretórios com mais de 5 mil arquivos).

    Testando alguns programas como o UNIX tools (comando ls e mv) no windows também encontrei o mesmo problema.

    ls 2010*.log

    2011041901401400001468.log  201109022305260000119C.log
    201104201140040000110C.log  201109022340060000149C.log
    2011042206401900001744.log  20110904110538000017A4.log
    20110422134002000014DC.log  20110904154014000014A8.log
    201104221640060000134C.log  2011090423301600001718.log

    Fiz uma tentativa de usar o Linux direto a partir de NFS para rodar a busca do diretório Windows e o Linux processa corretamente.

    root@ABSDCSV003:/mnt/ABSDCSV004/Log/2011# ls 2010*.log
    ls: cannot access 2010*.log: No such file or directory
    root@ABSDCSV003:/mnt/ABSDCSV004/Log/2011# ls 2012*.log
    ls: cannot access 2012*.log: No such file or directory

    Atencisamente,

    Ernesto Niklaus

    segunda-feira, 21 de janeiro de 2013 11:43