Microsoft Visual Studio: opendir () e readdir (), como?

votos
3

Eu usei este tipo de código no meu Dev-CPP antes:

if((dh = opendir(folder)) !== false){
    while((file = readdir(dh)) !== false){
        // do my stuff
    }
    closedir(dh);
}

Mas agora eu estou usando MSVC ++ e eu não sei como adicionar os arquivos lá, eu tentei copiar dirent.h / dir.h / errno.h lá, mas dá outro erro relativo a outro incluído arquivos dentro desses arquivos .. ., e olhando nos arquivos eu vejo coisas mingw lá assim que seu compilador relacionados? idk o compilador MSVC ++ usa, mas é possível CopyPaste esses arquivos em MSVC ++ e fazê-lo funcionar?

Eu tentei olhar para algum código do MSDN mas foi realmente confuso, então eu estou esperando que eu poderia usar essas funções acima ...

Publicado 19/05/2009 em 16:54
fonte usuário
Em outras línguas...                            


5 respostas

votos
14

Sugiro usar FindFirstFile () e FindNextFile () .

Aqui está o MSDN exemplo que faz exatamente o que você quer.

Respondeu 19/05/2009 em 17:03
fonte usuário

votos
7

Se precisar de uma queda rápida in-substituição, você também pode usar:

http://www.two-sdg.demon.co.uk/curbralan/code/dirent/dirent.html

classe simples eu achei que usa a API POSIX para Win32

Respondeu 24/09/2011 em 05:00
fonte usuário

votos
2

Grande, não era tão difícil, afinal de contas, eu tive que usar do-while embora:

HANDLE hFind;
WIN32_FIND_DATA FindFileData;

if((hFind = FindFirstFile("C:/some/folder/*.txt", &FindFileData)) != INVALID_HANDLE_VALUE){
    do{
        printf("%s\n", FindFileData.cFileName);
    }while(FindNextFile(hFind, &FindFileData));
    FindClose(hFind);
}

Isso realmente é melhor, porque eu posso usar "* .txt" etc, torna muito mais fácil encontrar alguns tipos de arquivos específicos, no início eu tinha que escrever própria função jogo para isso: D

Respondeu 19/05/2009 em 21:37
fonte usuário

votos
1

A resposta a esta questão depende muito da plataforma de destino que você está compilando para.

MSVC ++ é um compilador então eu estou indo supor que você está tentando executar ações semelhantes, como opendir () e readdir () em uma plataforma Windows. Nesse caso, ter um olhar para os seguintes recursos:

O segundo link é uma página da MSDN que lista todas as funções disponíveis na plataforma Windows API para interagir com o sistema de arquivos. Você vai descobrir que a maioria das operações com arquivos no Windows começar com uma chamada para o CreateFile função.

Respondeu 19/05/2009 em 17:02
fonte usuário

votos
0

Outro, possivelmente muito melhor substituto: https://github.com/tronkko/dirent

Respondeu 15/06/2018 em 15:13
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more