• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Filesystem na linux

Object Storage Arubacloud
+1 głos
205 wizyt
pytanie zadane 23 sierpnia 2017 w C i C++ przez aspoka Mądrala (5,290 p.)
edycja 23 sierpnia 2017 przez aspoka

Witam, potrzebuję wiedzieć jakie pliki znajdują się w folderze obok programu. Znalazłem takie rozwiązanie:

#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;

int main()
{
    std::string path = "path_to_directory";
    for (auto & p : fs::directory_iterator(path))
    std::cout << p << std::endl;
    return 0;
}

Niestety nie kompiluje się on na linux'ie.

main.cpp:3:22: fatal error: filesystem: No such file or directory
 #include <filesystem>
                      ^
compilation terminated.

Czy wie ktoś jak to zrobić?

EDIT. Chodzi o to by program to sprawdził

komentarz 23 sierpnia 2017 przez Benek Szeryf (90,870 p.)

Czy wie ktoś jak to zrobić?

Otwórz terminal, przejdź do folderu z programem za pomocą komendy:

cd sciezka/wzgledna/do/katalogu/z/programem

a następnie wydaj polecenie:

ls *

Zakładam, że Tobie chodzi o rozwiązanie problemu, a nie programowanie w konkretnym języku.

1
komentarz 23 sierpnia 2017 przez Patrycjerz Mędrzec (192,320 p.)
Benek, komentarze nie służą odpowiadaniu na pytania, lecz uzyskaniu dodatkowych informacji od autora tematu. Proszę o tym pamiętać na przyszłość.

3 odpowiedzi

+1 głos
odpowiedź 23 sierpnia 2017 przez unknown Nałogowiec (39,560 p.)
edycja 23 sierpnia 2017 przez unknown

Obecnie w chyba wszystkich kompilatorach nagłówek znajduje się w experimental/filesystem:

#include <experimental/filesystem>
komentarz 23 sierpnia 2017 przez unknown Nałogowiec (39,560 p.)

aha zmień alias na:

namespace fs = std::experimental::filesystem;

 

+1 głos
odpowiedź 23 sierpnia 2017 przez mokrowski Mędrzec (155,460 p.)
edycja 23 sierpnia 2017 przez mokrowski

1. Nie wiem jaka dystrybucja (i czy nowa z nowym kompilatorem i biblioteką standardową).

2. Jeśli to gcc, dodaj przełącznik -std=c++1z do kompilatora

3. <filesystem> bywa dostępny w kompilatorze w przestrzeni <experimental/filesystem*> i nazewniczej std::experimental

Np. dla Fedory 26 działa:

#include <string>
#include <iostream>
#include <experimental/filesystem>

namespace fs = std::experimental::filesystem;
 
int main()
{
    std::string path = "/tmp";
    for (auto & p : fs::directory_iterator(path))
    std::cout << p << std::endl;
}

Budowanie:

g++ -std=c++1z -c prog.cpp
g++ -o prog prog.o -L/usr/lib/gcc/x86_64-redhat-linux/7 -lstdc++fs

 

–1 głos
odpowiedź 23 sierpnia 2017 przez kompowiec2 Mądrala (6,380 p.)
w bashu komenda file *.*

* oznacza wieloznaczność tj. w tym przypadku dowolny plik

kropka natomiast jako oddzielenie dla rozszerzenia pliku.

Podobne pytania

0 głosów
1 odpowiedź 516 wizyt
0 głosów
0 odpowiedzi 176 wizyt
0 głosów
0 odpowiedzi 91 wizyt
pytanie zadane 5 maja 2019 w C i C++ przez Spectro Użytkownik (620 p.)

92,551 zapytań

141,399 odpowiedzi

319,529 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...