Pergunta

Existe alguma maneira de que eu possa usar para listar todos os nomes de arquivos em um diretório específico? Por exemplo, posso especificar o diretório1 e obter o arquivo3 e o arquivo4 etc

ZipFile
-------

File1
File2
Directory1
     File3
     File4
Directory2
     File5
     File6

O objeto ZipFile possui apenas entradas, entradas classificadas e nomes de arquivos de entradas ...

Alguém?, Cheeso? :)

Foi útil?

Solução

Não e sim. Não há uma coleção de entradas indiretor. No entanto, é uma questão simples de comparação de string para selecionar entradas que "pertencem" em um diretório específico.

Em Linq, parece o seguinte:

var selection = from e in zip.Entries 
    where e.FileName.StartsWith(directoryName)
    select e;

Em um loop, parece assim:

var list = new List<ZipEntry>();
foreach (var e in zip.Entries) {
  if (e.FileName.StartsWith(directoryName)) {
    list.Add(e);
  }
}

EDITAR

Você pode ter que fazer conversões para sensibilidade ao caso. No Windows, o caso não é significativo nos nomes de arquivos.

Explicação adicional: o formato ZIP não trata um diretório entrada no arquivo zip como contêiner. Não há relação de contêiner entre entradas de diretório e entradas de arquivo. A única maneira de saber se uma entrada de arquivo "pertence a" um diretório específico é examinar o nome completo da entrada do arquivo. Se o nome da entrada começar com o nome do diretório em questão, a entrada estará "no" Diretório.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top