Avatar billede jsc Nybegynder
06. april 2004 - 20:22 Der er 14 kommentarer og
1 løsning

Hvordan tjekkes om en bestemt fil findes?

Ja.. som sagt.. hvordan tjekker man at en bestemt fil findes?

/jsc
Avatar billede arne_v Ekspert
06. april 2004 - 20:25 #1
Kald stat på den - hvis den returnerer 0 så findes den (og man har adgang til den)
Avatar billede jsc Nybegynder
06. april 2004 - 20:27 #2
jeg er desværre newbie i C++ - kan du forklare det i koder?

bruger Borland Builder 6

/jsc
Avatar billede arne_v Ekspert
06. april 2004 - 20:31 #3
#include <sys/stat.h>

#include <iostream>

using namespace std;

bool exist(char *filename)
{
  struct stat sb;
  return (stat(filename,&sb) == 0);
}

int main()
{
  cout << exist("stat.cpp") << endl;
  cout << exist("nostat.cpp") << endl;
  return 0;
}
Avatar billede arne_v Ekspert
06. april 2004 - 20:32 #4
Altså en funktion:

bool exist(char *filename)
{
  struct stat sb;
  return (stat(filename,&sb) == 0);
}

hvor du skal huske at have:

#include <sys/stat.h>
Avatar billede jsc Nybegynder
06. april 2004 - 20:37 #5
fair nok... men hvordan skal jeg kunne tjekke det i borland builder?

int main()
{
  cout << exist("stat.cpp") << endl;
  cout << exist("nostat.cpp") << endl;
  return 0;
}

kan da ikke bruges i borland? jeg skal vel have lavet en if-then-else der spørger en streng om den er 0 eller ikke 0?

/jsc
Avatar billede jsc Nybegynder
06. april 2004 - 20:39 #6
hvad med:

if (exist("filnavn") == 0) {
//noget
}
Avatar billede arne_v Ekspert
06. april 2004 - 20:39 #7
if(exist("filnavn"))
{
  ...
}

er nok
Avatar billede jsc Nybegynder
06. april 2004 - 20:44 #8
mange tak for hjælpen! point til dig!

/jsc
Avatar billede jsc Nybegynder
06. april 2004 - 20:44 #9
...gider du at svare?
Avatar billede arne_v Ekspert
06. april 2004 - 20:44 #10
svar
Avatar billede jsc Nybegynder
06. april 2004 - 20:56 #11
hvorfor kommer den med en fejl om at den har en AnsiString og gerne vil have en Char*

jeg har lavet lidt om på koden:

String bfile;
bfile = "C:\\" + Label1->Caption + ".bmp";
if(exist(bfile)) {
Image1->Picture->LoadFromFile(bfile);
} else {
Image1->Picture = NULL;
}

er det ikke godt nok da?
Avatar billede arne_v Ekspert
06. april 2004 - 20:58 #12
String er ikke en char * ...

Prøv:

if(exist(bfile.c_str())) {

eller:

if(exist(bfile.str())) {

[jeg kan ikke lige huske hvad den hedder i Borland]
Avatar billede jsc Nybegynder
06. april 2004 - 21:01 #13
Genialt! det var ".c_str()" der skulle bruges

Tak!
Avatar billede jakobdo Ekspert
07. april 2004 - 10:23 #14
I borland kunne du også have brugt: if(FileExists(FILNAVN))
Avatar billede jsc Nybegynder
07. april 2004 - 10:33 #15
...okay! - det vil jeg bruge næste gang så.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester