Gå til innhold

Hvordan bruke chdir til å gå tilbake til parent folder?


Anbefalte innlegg

Hei,

 

Jeg driver med socket programmering og har fått litt problemer. Det jeg lurer på er følgende: klienten har tilgang til en mappe og dens undermapper, men ikke de over foreldremappen. Når klienten har vært i en undermappe og vil tilbake til foreldremappen, men den skal ikke ha tillgang til å gå lenger opp enn foreldremappen. Hvordan gjøre jeg dette? Jeg har lest litt om chdir() og system(), men finner ikke ut noe. Jeg er en nybegynner i C, så det kan hende at dette egentlig er veldig lett:)

Lenke til kommentar
Videoannonse
Annonse

Vanligvis får folk til bytting av mapper og sånt, men sliter med socket :)

 

Jeg tror at du bruker windows :whistle: og da bør du kikke litt på dette Changing the Current Directory

 

Lykke til

 

Edit:

Mulig du ikke bruker windows :(

Vel chdir fungere ved at du skriver inn direktivet du vil være.

Ved bruk av getcwd finner du ut hvor du er. Vet å bruke resultatet og litt manipulering av stringen du får lageg en som gir stien til mappen "over", den stringen sender du til chdir som da flytter deg et steg "opp".

Endret av Giddion
Lenke til kommentar

Jeg bruker linux (ubuntu), ikke noe windows her! :p

Jeg har nå fått til å bytte directory, har også fått til å komme tilbake til parent folder ved å bruker chdir(".."). Problemet er at klienten ikke skal ha tilgang til mapper over parentfolder som jeg allerede har definert. Jeg har altså definert et område klienten skal ha tilgang til, men sånn som jeg bruker chdir nå, så kan den gå helt til roten ved å bruke chdir("..") nok ganger, og dette skal altså ikke klienten kunne gjøre. Skjønner altså ikke hvordan jeg skal få til dette, har sett masse på nettet og i manualen, men finner ingenting som er brukbart:(

Lenke til kommentar
Du kan også bruke ".." for å nå undermappen.

Du må alltid gjøre det så enkelt :(

 

<snip>

 

Jeg vet ikke helt hvordan ditt program "beveger" seg, men hvis det bare beveger seg opp og ned et steg av gangen kan du hindre klienten når du har kommet på toppen av hva den får lov til.

 

eks. (psudokode)
if (getcwd () == "/home/Gunnar")
{
 //Oj oj oj nå skal vi ikke lengere opp
 // sende en melding til den andre maskinen at den ikke får lov
}
else
{
 //da må vi være "nedenfor" /home/Gunnar 
 chdir("..")
}

Endret av Giddion
Lenke til kommentar
Du kan også bruke ".." for å nå undermappen.

Du må alltid gjøre det så enkelt :(

 

<snip>

 

Jeg vet ikke helt hvordan ditt program "beveger" seg, men hvis det bare beveger seg opp og ned et steg av gangen kan du hindre klienten når du har kommet på toppen av hva den får lov til.

 

eks. (psudokode)
if (getcwd () == "/home/Gunnar")
{
 //Oj oj oj nå skal vi ikke lengere opp
 // sende en melding til den andre maskinen at den ikke får lov
}
else
{
 //da må vi være "nedenfor" /home/Gunnar 
 chdir("..")
}

 

Takk for svar, skal prøve dette og se om jeg får det til:)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...