Logo Hardware.com.br
Thunder
Thunder General de Pijama Registrado
5.9K Mensagens 24 Curtidas

Como pegar o caminho completo de um arquivo em C?

#1 Por Thunder 18/05/2010 - 17:19
Meu programa recebe um nome de um arquivo e o procura no diretório corrente e subdiretórios caso existirem, porém eu preciso imprimir o caminho completo de cada diretório que esta sendo "varrido" e no final, caso o arquivo exista imprimi-lo também.....alguém tem idéia de como fazê-lo?.....ja consigo percorrer os diretórios e procurar o arquivo, só falta imprimir o caminho...existe em C uma função que retorne o caminho de um arquivo?
tpcvasco
tpcvasco General de Pijama Registrado
2.9K Mensagens 330 Curtidas
#2 Por tpcvasco
18/05/2010 - 17:33
Vc está usando a solução q vc comentou no outro post?
https://www.hardware.com.br/comunidade/diretorio-verificar/1057879/
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Thunder
Thunder General de Pijama Registrado
5.9K Mensagens 24 Curtidas
#3 Por Thunder
18/05/2010 - 17:48
tpcvasco disse:
Vc está usando a solução q vc comentou no outro post?
https://www.hardware.com.br/comunidade/diretorio-verificar/1057879/


Não, desta vez estou usando a para percorrer os arquivos e pastas dos diretórios...baseado no exemplo abaixo...
[php]
#include /* printf() */
#include /* struct DIR, struct dirent */
#include

/* Inicio do programa principal */
int main (int argc, char *argv[])
{
DIR *id_pasta; /* ponteiro para o fluxo correspondente a pasta a ser analisada */
char *nome_pasta = "."; /* pasta a ser listada . No caso, é a pasta atual onde for executado este programa */
struct dirent *id_nome; /* ponteiro para um dos nomes da pasta */

id_pasta = opendir(nome_pasta); /* abrir o fluxo para a pasta desejada e retornar um ponteiro para esse fluxo */

if(id_pasta != NULL) /* se a pasta existir */
{
do{
id_nome = readdir(id_pasta); /* ler um nome da pasta sendo varrida. Uma vez lido, automaticamente, a próxima leitura será do próximo nome na pasta */
printf("%-15s ", id_pasta->dd_dta.name); /* imprimir o nome atual lido */
if(id_pasta->dd_dta.attrib & _A_SUBDIR) //se o nome da pasta corresponder a um diretorio
printf("
Specian
Specian Membro Senior Registrado
328 Mensagens 24 Curtidas
#4 Por Specian
19/05/2010 - 09:38
Thunder,
Tem uma que tras todo o caminho do dir em que seu programa esta, o problema quanto a ela seria a portabilidade.
Mas espero q ajude.
[ ]'s

#include <windows.h>
char dir[255];
int main() {
GetCurrentDirectory(255,dir);
MessageBox(0,dir,"Diretório:",MB_OK|MB_ICONINFORMATION);
return 0;
}
" Atire a primeira pedra quem nunca esqueceu um ponto e vírgula. "
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal