Najszybszy sposób sprawdzenia, czy plik istnieje przy użyciu standardowego C ++

Najszybszy sposób sprawdzenia, czy plik istnieje przy użyciu standardowego C ++
Sprawdzanie, czy Pliki istnieją Korzystanie ze standardowego C ++ jest ważnym zadaniem dla programistów pracujących nad aplikacjami związanymi z plikami i katalogami. Przed przeniesieniem danych na dysku lub próbą zastąpienia istniejącego pliku, sprawdzając, czy plik istnieje to istotne. W zależności od tego, co deweloper próbuje osiągnąć, istnieje wiele sposobów sprawdzenia, czy plik istnieje. Ten artykuł nauczy Cię dalej.

Jak sprawdzić istnienie pliku w standardowym c++

Istnieje wiele metod ustalenia, czy jest tam plik, na przykład:

  • Za pomocą funkcji STAT ()
  • Używanie std :: ifstream
  • Za pomocą funkcji fopen ()

1: Jak sprawdzić istnienie pliku w C ++ za pomocą funkcji Stat ()

Stat () Metoda jest najbardziej wydajną i bezpieczną techniką weryfikacji istnienia plików. SYS/STAT.H plik nagłówka ma predefiniowaną funkcję o nazwie Stat. Funkcja akceptuje ścieżkę i strukturę jako parametry, w których przechowywanoby metadane związane z plikiem lub katalogiem. Funkcja zwraca wynik 0, jeśli trasa jest uzasadniona. Sprawdzalibyśmy istnienie pliku jako przykład:

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

const char* file = "c_file.tekst";
struct Stat sb;
if (stat (plik i sb) == 0)
Cout << "This file exists";
w przeciwnym razie
Cout << "The file does not exists!";
powrót 0;

Najpierw zmienna wskaźnika pliku przechowuje ścieżkę pliku. Potem Stat Format pliku nagłówka służy do inicjalizacji pustej struktury. Metadane zostaną uratowane w ten sposób. Funkcja STAT Następnie jest wywoływany wewnątrz stanu IF. Wynik byłby 0, jeśli ścieżka jest poprawna, co oznacza, że ​​plik lub katalog istniał; W przeciwnym razie byłoby to niezerowe.

Wyjście

Notatka: Upewnij się, że zastąpienie nazwy pliku „C_file.tekst" z nazwą pliku, którą chcesz sprawdzić.

2: Jak sprawdzić istnienie pliku w C ++ za pomocą funkcji STD :: ifStream ()

Korzystanie z funkcji standardowej biblioteki C ++ STD :: ifstream to kolejna metoda ustalenia, czy plik jest obecny. Obiekt strumieniowy, który może być używany do odczytania pliku, jest zwracany przez tę funkcję, która akceptuje ścieżkę jako wejście. Aby użyć tej funkcji, programista przekazałby ścieżkę i nazwę pliku do konstruktora STD :: ifstream klasa. Wynikiem tego jest albo plik z powodzeniem otwierany przez konstruktora, albo wyrzucany wyjątek. W rezultacie, jeśli plik zostanie otwarty, programista może założyć, że jest obecny.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()
plik ifStream („nazwa_pliku.tekst");
if (plik.Dobry())

STD :: Cout << "file exists." << endl;

w przeciwnym razie

STD :: Cout << "file doesn't exist." << endl;

Zaczynając od główny() metoda, obiekt ifstream Klasa o nazwie plik jest tworzona w celu późniejszego odczytania pliku docelowego. Podczas wywoływania funkcji otwartej w obiekcie pliku nazwa pliku docelowego jest następnie dostarczana jako argument. Ta linia będzie próbowała otworzyć plik w trybie tylko do odczytu.

Ponieważ plik może być otwarty tylko wtedy, gdy istnieje fizycznie i nie można go uzyskać inaczej. Pośrednio wykorzystujemy metodę Open () do weryfikacji Istnienie pliku. Następnie, używając instrukcji warunkowych IF-ELSE, ustalamy, czy obiekt pliku otworzył plik, czy nie; Jeśli tak, oznacza to, że znajduje się on na określonej ścieżce i wyświetlamy komunikat sukcesu; W przeciwnym razie tworzymy komunikat o błędzie.

Wyjście

3: Jak sprawdzić istnienie pliku w C ++ za pomocą funkcji fopen ()

Trzeci sposób sprawdzenia, czy plik istnieje jest użycie funkcji C ++ fopen (). fopen () Metoda tworzy strumień i otwiera plik wskazany przez nazwę pliku. Zmienna trybu to ciąg znaków, który wskazuje rodzaj żądanego dostępu do pliku. Jeden parametr pozycyjny poprzedza opcjonalne argumenty słów kluczowych w zmiennej trybu.

Możemy zapisać wartość zwróconą od wykonania fopen () w pliku wskaźnika po zakończeniu. Jeśli otwarcie pliku zakończyło się powodzeniem, funkcja fopen (), co pokazuje, czy plik został wcześniej otwarty, wytworzy wskaźnik strumienia pliku odnoszący się do pliku docelowego. Jeśli się nie powiodło, co wskazuje, czy plik już był, zwróci Null. Następnie, jeśli odniesienie pliku nie jest zerowe, wiemy, że plik jest obecny i może wytworzyć komunikat sukcesu; W przeciwnym razie zostanie wysłany komunikat o błędzie.

#włączać
#włączać
za pomocą przestrzeni nazw Std;
int main ()

Plik* plik;
file = fopen ("plik C_File.txt "," r ");
if (plik!= Null)

Cout << "File exists" << endl;

w przeciwnym razie

Cout << "File does not exists" << endl;

powrót 0;

Aby odczytać plik, budujemy wskaźnik do klasy plików, zaczynając od główny () metoda. Następnie używamy argumentów „C_file.tekst" I "R" Aby zdefiniować plik docelowy i działanie, które chcemy na niego wykonać, gdy wykonujemy fopen () metoda. 'R' Wskazuje, że chcemy odczytać plik.

Wyjście

Wniosek

Istnieją różne funkcje C ++, aby sprawdzić, czy istnieje plik, które są Stat, std :: ifstream I fopen. Z trzech metod, Stat () Funkcja jest najszybszym i najbardziej niezawodnym sposobem sprawdzania egzystencji plików. Podczas gdy pozostałe dwie funkcje są również przydatne do sprawdzania istnienia pliku. Dlatego programiści powinni rozważyć użycie tych funkcji w celu optymalnej wydajności i niezawodności podczas sprawdzania istnienia plików.