Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> błedy obsugi systemu plików
Papub
post
Post #1





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 17.02.2006

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


witam,
chciałbym obsłużyć błędy np. tworzenia katalogu, otwierania katalogu itd poprzez zgłaszanie wyjątków. majac kod:

  1. if(false !== ($dir = @opendir($calyurl)) {
  2. while(false !== ($file = readdir($dir))) {
  3. if($file != '.' && $file != '..') {
  4. $danepliku = pathinfo($file);
  5. if(!is_dir($calyurl.'/'.$file)) {
  6. if(!unlink($calyurl."/".$file)) {
  7. throw new Exception('Błąd usuwania zdjęć z katalogu galerii', 10);
  8. }
  9. }
  10. }
  11.  
  12. }
  13. } else {
  14. throw new Exception('Błąd otwierania folderu galerii', 8);
  15. }


niestety to nie działa tak jak powinno. Nie tworzy wyjątku podczas próby otwarcia katlogu do którego nie ma się prawa:
czyli @opendir($calyurl) == false a wyjatek i tak nie jest zglaszany. proszę o pomoc. Pozdrawiam

Ten post edytował Papub 3.05.2012, 13:20:49
Go to the top of the page
+Quote Post
marcio
post
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Skorzystaj z http://www.php.net/manual/pl/class.directoryiterator.php i uzyj wyjatkow
Go to the top of the page
+Quote Post
Papub
post
Post #3





Grupa: Zarejestrowani
Postów: 113
Pomógł: 1
Dołączył: 17.02.2006

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


No właśnie tego też próbowałem ale $dir = new DirectoryIterator('katalog co nie istnieje');
nie zwracał mi błedu. Czyli wyjątek się nie obsługiwał.

Mam w bloku try jeszcze wiecej innych zgłaszanych wyjątków.
robiłem tak

  1.  
  2. try {
  3. if($dir = new DirectoryIterator('katalog co nie istnieeje')) {
  4. //operacje na katalogu
  5. } else {
  6. throw new Exception('blad', 1);
  7. }
  8. } catch(Exception $e) {
  9. switch($e->getCode()) {
  10. case 1:
  11. echo $e-getMessage();
  12. exit();
  13. break;
  14.  
  15. case 2:
  16. //cos tam cos tam
  17. exit();
  18. break;
  19.  
  20. }
  21. }
  22.  



sprawdzenie czy katalog istnieje też mi nic nie daje. Bo tutaj chodzi i błąd braku praw do folderu. Użyć isWriteable?
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


No to masz metody isDir/isFile/isWritable/isReadable wykorzystaj w przypadku false zwroc wyjatek

p.s twoj kod nie rzuca wyjatku bo poprostu iterator dircetory nie udostpenia ich "natywnie"

Ten post edytował marcio 3.05.2012, 17:05:17
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 16.09.2025 - 09:34