Sprawdzanie pliku w folderze 3161 4

O temacie

Autor Siemekk

Zaczęty 13.05.2017 roku

Wyświetleń 3161

Odpowiedzi 4

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Cześć. Czym najlepiej sprawdzać czy dany plik znajduje się w folderze? Używałem fstream, ale gdy stworzyłem bibliotekę to nigdy nie znajduje pliku w folderze (Nawet gdy jest w tym samym folderze co biblioteka). Kod wygląda tak:
bool SoundFound(string file_name)
{
string cs = "../_work/data/Music/" +  file_name;
fstream file;
file.open(cs.c_str());

if(file.good())
return true;
else
return false;
}
Byłbym wdzięczny za wskazanie jakiegoś lepszego sposobu na szukanie plików.
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Pewnie masz złą ścieżkę. Podaj całą ścieżkę, zamiast "../".

Toworish

Toworish

Użytkownicy
http://chomikuj.pl/ToWoRiSh
posty1664
Propsy254
ProfesjaNierób
  • Użytkownicy
  • http://chomikuj.pl/ToWoRiSh
A nie winnyś użyć też cstdlib ? btw, może spójrz
https://www.youtube.com/watch?v=h2Taf16gQDI

 
Niebawem...Pierdolnę se poradniki do Goticzka. Albo i nie, bo sie mnie nie chce.

Siemekk

Siemekk

Złote Wrota
Untersturmfuhrer
posty2143
Propsy1151
ProfesjaProgramista
  • Złote Wrota
  • Untersturmfuhrer
Przy podaniu pełnej ścieżki działa, lecz nie mogę podać folderu z góry gdyż nie ma to najmniejszego sensu! Więc pytanie brzmi jak cofnąć się o folder?
Lokalizacja DLL'ki D:\G2\System\
Lokalizacja pliku D:\G2\_Work\Data\Music\
 

P.S A Splash w szafie i nie ma psychy by mi dać bana.

Wonski

Wonski

Gry (themodders@telegram)
radio engineer
posty256
Propsy91
ProfesjaProgramista
  • Gry (themodders@telegram)
  • radio engineer

Wonski
Gry (themodders@telegram)

Sprawdzanie pliku w folderze
#4 2017-05-14, 19:01(Ostatnia zmiana: 2017-05-14, 19:56)
Czym to kompilujesz?
Jeżeli przy pomocy gcc lub clanga (choć nie wiem czy clang ma pełne wsparcie, na pewno na dzień dzisiejszy msvc odpada, choć i pod vs można podpiąć protezę w postaci minGW lub clanga) to warto zainteresować się nową libką wchodzącą w skład nowego standardu:
http://en.cppreference.com/w/cpp/filesystem
Nawet nie pamiętam czy gcc i clang korzystają z tej samej implementacji biblioteki standardowej:
https://libcxx.llvm.org/
czy może z tego:
https://www.gnu.org/software/libc/


Zresztą....
Myślę, że w std::filesystem znajdziesz odpowiednie ficzery, które zrobią za Ciebie robotę.
Przejrzyj sobie dokumentację klasy path: http://en.cppreference.com/w/cpp/filesystem/path
Myślę, że pomoże Ci w rozwiązaniu tego problemu.

Jeżeli implementacja biblioteki standardowej z której korzysta Twój kompilator nie wspiera standardu c++17, to nie ma co się pierdolić i zawsze możesz podpiąć pod projekt odpowiednik third-party z boosta:
http://www.boost.org/doc/libs/1_64_0/libs/filesystem/doc/index.htm
Choć rozwiązania standardowe są zazwyczaj szybsze od tych z boosta. Jest jeszcze sprawa, że libka została pewnie wykastrowana zanim przenieśli ją do standardu (nie wiem, nie porównywałem, ale np std::future jest poobcinane w porównaniu z boost::future).
W każdym bądź razie nie należy mieszać rozwiązań standardowych z tymi z boosta.


tak btw
Nie polecam tych filmików od Zelenta. Na stronach cppreference i cplusplus masz wiedzę opisaną w przystępny i co najważniejsze wyczerpujący sposób. A jeżeli i to jest dla Ciebie za mało to można zerknąć sobie do oficjalnych draftów. To oczywiście moja opinia, nie każdy musi się z tym zgadzać.
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry