Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] removedir
Dreen
post 25.05.2004, 10:51:59
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.05.2004

Ostrzeżenie: (0%)
-----


Stworzylem funkcje do usuwania folderow na uzytek przegladarki, jedna nie dziala tak jak powinna.

chodzi o usuwanie pustych folderow, kiedy bowiem uzyje poprostu komendy rmdir, a folder jest pusty, usunie sie bez problemu, ale kiedy juz wloze to do funkcji - wyskakuje blad. Obecnie funkcja dziala tak:
[php:1:deba08cbc6]<?php
function removedir($thedir) // deklaracja funkcji - $thedir to cel do usuniecia
{
$tablicak = spisz_dira("all", $thedir."/"); // ta funkcja ideksuje pliki wewnatrz katalogu i dziala dobrze, mniejsza o to jak
$fcount = count($tablicak);
if ($fcount == 0) // teraz sprawdzam czy katalog jest pusty, jesli tak, no to chcialbym go usunac
{
rmdir($thedir); // tu wyskakuje blad w przypadku pustego folderu
}
else // jesli folder nie jest pusty, no to trza go wyczyscic i potem usunac...
{
foreach ($tablicak as $key => $value) // dla kazdej pozycji katalogu...
{
$pozycja = $thedir."/".$value;
if (!is_dir($pozycja))
unlink ($pozycja); // ...usun pozycje jesli jest ona plikiem,...
elseif (is_dir($pozycja))
removedir($pozycja); //...lub wywolaj dla niej funcje jeszcze raz, jesli jest folderem
}
rmdir($thedir); // po skonczonym czyszczeniu usun katalog, tu rowniez wyskakuje blad, jesli w folderze znajdowaly sie pliki...
}
}
?>[/php:1:deba08cbc6]
probowalem zamienic rmdir na echo zeby sprawdzic jaka nazwa sie genuruje, ale generuje sie dobra nazwa. Zreszta, zeby sie upewnic wstawilem rmdr("poprawnanazwa"); w miejscu, gdzie normalnie wywoluje funkcje, jesli naplynelo zadanie usuniecia katalogu...
Generowany blad, to tak jak wczesniej Brak Dostepu (Permission Denied), wiec nazwa tak czy owak jest dobra bo byloby Not Such File Or Dir.

Jesli ktos ma jakis pomysl, to bardzo prosze o pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
Kinool
post 25.05.2004, 11:03:06
Post #2





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

Ostrzeżenie: (0%)
-----


Cytat
Permission Denied


A uprawnienia katalagu jakie sa?? twojego usera czy usera na jakim jest uruchomiony Apache questionmark.gif

mozliwe ze to wina zlych uprawnien sprobuj zrobic kataog przez skrypt i wyedy go usunac.


--------------------
Go to the top of the page
+Quote Post
FiDO
post 25.05.2004, 12:35:40
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Na bank jest to wina uprawnien.
Prawdopodobnie katalog utworzyles przez ftp'a lub shell'a, czyli jego wlascicielem jest Twoje konto, a probujesz go skasowac przez konto apache'a, co jest niemozliwe przy standardowych prawach.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Dreen
post 25.05.2004, 18:43:20
Post #4





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.05.2004

Ostrzeżenie: (0%)
-----


Wlasnie ze nie.


Wszystko testuje u siebie na kompie (najnowsza wersja phpdev) i cos takiego mi wyskakuje.

Probowalem przed kazdym rmdir($thedir) dac chmod($thedir, 0777) ale to nie podzialalo.
Zreszta wogole taki przypadek jest wykluczony, gdyz w momencie kiedy zamiast wywolac funkcje, dam poprostu rmdir() (i oczywiscie upewnie sie ze folder jest pusty) to folder zostanie usuniety poprawnie.

Problem pozostaje wiec nadal nierozwiazany, a funkcja jest raczej wazna dla przegladarki, bo komu chcialoby sie czyscic foder manualnie...
Go to the top of the page
+Quote Post
FiDO
post 25.05.2004, 19:36:29
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


W takim razie nie usuwa Ci poprawnie plikow w tym katalogu i/lub podkatalogach.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Dreen
post 25.05.2004, 20:00:29
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.05.2004

Ostrzeżenie: (0%)
-----


Usuwa, sprawdzalem wyczyscil ladnie folder w ktorym byly tylko pliki, poczym zwrocil blad Permission Denied.

Problem nadal aktualny
Go to the top of the page
+Quote Post
FiDO
post 25.05.2004, 21:16:55
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Takie glupie pytanie... nie masz czasem w Exploratorze Windows, ew. Total Commanderze czy innym podobnym otwartego tego katalogu, ktory chcesz usunac ?


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
Dreen
post 25.05.2004, 22:52:51
Post #8





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.05.2004

Ostrzeżenie: (0%)
-----


Faktycznie glupie... oczywiscie ze nie.

Jesli ktos jeszcze nie stracil do mnie cierpliwoscii chcialby mi pomoc, to za powiadomienia mnie o tym na PW moge mu wyslac pelny source przegladarki rarem, zeby mial jasny obraz sytuacji.
Go to the top of the page
+Quote Post
FiDO
post 25.05.2004, 23:16:19
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


Aha.. na marginesie.. zajrzyj do manuala, chyba przy opisie funkcji [manual:7f4cd4c685]rmdir[/manual:7f4cd4c685] w komentarzach jest podanych kilka przykladowych kodow usuwajacych rekurencyjnie dany podkatalog z zawartoscia.


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:37