Czy folder jest używany ?

0

Jak sprawdzić czy folder jest używany.
Chodzi dokładnie o to czy można do tego folderu wejść, czy jest on chroniony przed przeglądaniem (dotyczy TYLKO na systemie XP)

0

Nie wiem, jak się ma "używany" do "chroniony przed przeglądaniem". Najprostszym sposobem będzie chyba:

  //...
  {$I-}
  ChDir('folder_do_ktorego_checsz_wejsc');
  if GetLastError() = ERROR_ACCESS_DENIED then
    //Odmowa dostępu
  else
    //można wejść
0

Dzięki Morris [soczek]

Dopiero teraz mogłem to sprawdzić i zastosować na partycji NTFS.
Jednak zauważyłem pewną nieścisłość:

Czy nie powinna zostać włączona dyrektywa

{$I}

po wykonaniu "zadania" ?

begin
  {$I-}
  ChDir('D:\System Volume Information');
  {$I+}  // <- włączenie dyrektywy obsługującej polecenia Wej/Wyj
  if GetLastError() = ERROR_ACCESS_DENIED then Label1.Caption := 'Odmowa dostępu'
  else Label1.Caption := 'Folder: dostępny';
end;
0

nie ;P

0

właśnie, że powinna być włączona!

{$i-}
  błędy
{$i+}
  sprawdzanie numeru błędu np 
  if ioresult<>0 then błąd;
0
sdsa napisał(a)

właśnie, że powinna być włączona!

Tak myślałem, Dzięki

i dziękuję raz jeszcze Morrisowi - dzięki tobie usunąłem ten wstrętny błąd dostępu do folderów w moim programie...

0

szkoda mi mowic ale na zdrowy rozsadek ta dyrektywa powinna byc wylaczona globalnie

0
flabra napisał(a)

szkoda mi mowic ale na zdrowy rozsadek ta dyrektywa powinna byc wylaczona globalnie

Jeżeli kompilujemy finalną wersję programu, która ma trafić do użytkowników wyłączona się te wszystkie Runtime Errors i Debugging natomiast włącza optymalizację kodu wynikowego (Optimization) natomiast podczas pisania i testowania programu dokładnie odwrotnie. Czyli optymalizacja powinna być wyłączona, Runtime Errors i Debugging włączone.
EDIT//
Poprawiłem 2 ortografy,

flabra napisał(a)

wiesz co znaczy globalnie ? wiesz jaki moral z tego ?...

to coś do mnie? bo nie rozumiem o co ci chodzi,

0

wiesz co znaczy globalnie ? wiesz jaki moral z tego ? ze do kompilacji zmienia sie conajwyzej jeden znaczek wlasnie po to zeby sobie ulatwic kompilacje koncowa albo testowa. w ogole odpowiedz nie na temat, argumenty za przytaczasz jako przeciw. co do $i trzeba ustawic w kazdym module (pliku zrodlowym) z osobna, albo calkowicie w opcjach kompilatora

{$i-,d-,s-,r-}   
{i tak dalej}
Program alamakota;

begin
  writeln('a kot ma ale');
end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1