CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Folder Lock

Folder Lock

dział ogólny

Folder Lock

Nowy postprzez antonio559 » czwartek, 3 maja 2012, 17:25

Czy istnieje mozliwosc zablokowania folderu za pomoca hasla dla bezposredniego otwarcia i swobodne czytanie z poziomu aplikacji
Avatar użytkownika
antonio559
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): czwartek, 3 maja 2012, 17:20
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP
Kompilator: Bcb6
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez Cyfrowy Baron » czwartek, 3 maja 2012, 17:35

Niestety nie! Zamiast folderu możesz użyć archiwum ZIP, bez stosowania kompresji pobieranie i zapisywanie plików będzie przebiegało bardzo szybko. Archiwum możesz zabezpieczyć hasłem. Niektóre rodzaje plików jak np. pliki tekstowe, grafiki można wczytywać bezpośrednio do pamięci bez wypakowywania ich na dysk, co w zasadzie wygląda tak jakbyś czytał plik bezpośrednio z katalogu.
Gdybyś się na to zdecydował to polecam komponent TZipForge.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez antonio559 » czwartek, 3 maja 2012, 19:17

Dzieki Baronie. Jednak istnieja takie programy jak Folder Lock i jakos sobioe daja rade z katalogami. Nie wiem jak moze w API. Niemniej jednak podzialam z komponentami Twojej sugestii. Nie zamykajmy watku. Byc moze cos jeszcze sie dowiem lub opisze swoje doswiadczenia. Pozdrawiam
Avatar użytkownika
antonio559
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): czwartek, 3 maja 2012, 17:20
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP
Kompilator: Bcb6
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez Cyfrowy Baron » czwartek, 3 maja 2012, 19:52

Nie wiem jak działają te programy, ale Windows nie ma takiej funkcji, więc to musi być tylko jakaś prosta sztuczka.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez polymorphism » czwartek, 3 maja 2012, 19:55

Jednak istnieja takie programy jak Folder Lock i jakos sobioe daja rade z katalogami.

Pytanie, czy są to katalogi, czy może pliki-kontenery, które z poziomu aplikacji/trybu użytkownika widziane są jako katalogi. Takie rozwiązanie wiąże się z napisaniem odpowiedniego drivera (file system filter driver?).
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez Cyfrowy Baron » czwartek, 3 maja 2012, 20:31

polymorphism napisał(a):Pytanie, czy są to katalogi, czy może pliki-kontenery, które z poziomu aplikacji/trybu użytkownika widziane są jako katalogi.


Sprawdziłem jeden z takich programów i zablokowane katalogi wogóle nie są widziane, nie ma do nich dostępu - znikają, ale z całą zawartością. Co to są pliki-kontenery, czy mogą przechowywać bardzo duże, dowolne pliki?
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez polymorphism » piątek, 4 maja 2012, 11:10

Tak, o takie pliki mi chodziło. Generalnie mowa o wirtualnym systemie plików (VFS). Z drugiej strony można by to jeszcze inaczej zrealizować, bez zabawy z VFS. Po prostu driver kontrolowałby dostęp i widzialność plików czy katalogów. Pliki musiałyby być (de)kodowane w locie, żeby na innym systemie nie było możliwe ich odczytanie, wszak bez drivera maskującego byłyby widzialne.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez Cyfrowy Baron » piątek, 4 maja 2012, 21:48

W programie który testowałem istniała usługa systemowa, która jak sądzę kontrolowała dostęp do katalogu. Jednakże po wyłączeniu usługi katalog się nie pojawił, wręcz przeciwnie teoretycznie istniał, gdyż nie można było w tej samej lokalizacji utworzyć pliku o tej samej nazwie - system wyświetlał komunikat, że folder o takiej nazwie już istnieje, niemniej jednak nie dało się w żaden sposób wejść do tegoż folderu, np. z linii komend.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez antonio559 » sobota, 19 maja 2012, 21:33

Witam. Zainstalowalem komponent ZipForge i z tego co do tej pory rozszyfrowalem to pieknie realizuje archiwizacje pojedynczych plikow natomiast co do arciwizacji calego katalogu nie bardzo wiem czy to mozliwe. Demo tez nie rozwiazuje tego problemu. Moze ktos mial juz z tym do czynienia, prosze o informacje.Pozdrawiam
Avatar użytkownika
antonio559
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): czwartek, 3 maja 2012, 17:20
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP
Kompilator: Bcb6
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez Cyfrowy Baron » niedziela, 20 maja 2012, 07:51

KOD cpp:     UKRYJ  
 ZipForge1->FileName = "c:\\Temp\\Paczka.zip"; // lokalizacja i nazwa dla spakowanego archiwum

 ZipForge1->OpenArchive(fmCreate);
 ZipForge1->Password = "hasło";

 ZipForge1->CompressionMode = 9; // 0-9 9 - maksymalny stopień kompresji
 ZipForge1->EncryptionMethod = caAES_256; // metoda szyfrowania - tutaj najwyższa

 ZipForge1->BaseDir = "c:\\katalog z plikami\\";  // katalog z plikami do spakowania
 ZipForge1->AddFiles("*.*", faAnyFile, "");

 ZipForge1->CloseArchive();


W powyższym przykładzie spakowana zostanie zawartość katalogu z lokalizacji "c:\\katalog z plikami\\", a archiwum zostanie utworzone w lokalizacji "c:\\Temp\\" w pliku o nazwie Pcaczka.zip. W tym przykładzie archiwum Paczka.zip będzie jednak zawierało tylko pliki z katalogu "c:\\katalog z plikami\\", ale samego katalogu już nie.

Jeżeli chcesz umieścić w archiwum również katalog to właściwości BaseDir musisz przekazać ścieżkę dostępu do katalogu nadrzędnego, czyli w przykładzie tylko "c:\\" gdyż "katalog z plikami" znajduje się bezpośrednio na dysku c:, który jest dla niego katalogiem nadrzędnym. By jednak nie spakować do archiwum całej zawartości dysku c: musisz funkcji AddFiles ustawić maskę tak by pakowała tylko "katalog z plikami". Reszta pozostaje bez zmian:

KOD cpp:     UKRYJ  
 ZipForge1->BaseDir = "c:\\";  // katalog nadrzędny
 ZipForge1->AddFiles("katalog z plikami\\*.*", faAnyFile, "");


Jeżeli w pakowanym katalogu znajdują się podkatalogi to zostaną również spakowane.

Jak spakować dwa katalogi z cała zawartością znajdujące się np. bezpośrednio na dysku c:?

KOD cpp:     UKRYJ  
 ZipForge1->BaseDir = "c:\\";  // katalog nadrzędny
 ZipForge1->AddFiles("katalog z plikami\\*.*", faAnyFile, "");
 ZipForge1->AddFiles("drugi katalog\\*.*", faAnyFile, "");


Wystarczy wielokrotnie wywołać funkcję AddFiles.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez antonio559 » niedziela, 20 maja 2012, 10:53

Dzieki Baronie. Tak popelnilem blad w rozumowaniu. Usilnie probowalem zabezpieczyc katalog haslem a takze zarchiwizowac katalog z haslem. To bylo bezsensowne. Wystarczy utworzyc archiwum a w nim potrzebne pliki i potraktowac to archiwum jako taki sobie folder. I wszystkie operacje ZipForge maja sens. Mimo wszystko dziekuje za pomoc. Bede dalej probowal. Pozdrawiam wszystkich
Avatar użytkownika
antonio559
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): czwartek, 3 maja 2012, 17:20
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP
Kompilator: Bcb6
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez sebaskow » środa, 30 maja 2012, 20:39

Witam.

Wtrącę się i zapytam czy ten komponent ( ZipForge ) posiada możliwość śledzenia postępu pakowania-szyfrowania tak aby włączyć jakiś pasek do programu ?
Avatar użytkownika
sebaskow
Intelektryk
Intelektryk
 
Posty: 135
Dołączył(a): wtorek, 3 maja 2011, 08:30
Lokalizacja: Katowice
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: C++ Builder XE7
Gadu Gadu: 0
    Windows XPChrome

Re: Folder Lock

Nowy postprzez Cyfrowy Baron » czwartek, 31 maja 2012, 08:08

Komponent ma zdarzenia OnFileProgress dla wyświetlania postępu pojedynczego pliku i OnOverallProgress dla wyświetlania postępu wielu plików, czyli dla całkowitego postępu pakowania.

KOD cpp:     UKRYJ  
void __fastcall TForm1::ZipForge1FileProgress(TObject *Sender, UnicodeString FileName,
                  double Progress, TZFProcessOperation Operation, TZFProgressPhase ProgressPhase,
                  bool &Cancel)
{
 if( ProgressPhase == ppProcess )
  Label1->Caption = "Rozpoczynam pakowanie pliku: " + FileName;

 if( ProgressPhase == ppProcess )
   ProgressBar1->Position = Progress;


 Application->ProcessMessages();

 if( ProgressPhase == ppEnd )
   ShowMessage("Spakowano");
}


Najlepiej jest jednak zastosować dwa paski postępu, z których pierwszy będzie pokazywał postęp pakowania pliku, a drugi całkowity postęp pakowania. W tym celu trzeba zrobić obsługę obydwu zdarzeń.

KOD cpp:     UKRYJ  
void __fastcall TForm1::ZipForge1FileProgress(TObject *Sender, UnicodeString FileName,
                  double Progress, TZFProcessOperation Operation, TZFProgressPhase ProgressPhase,
                  bool &Cancel)
{
 if( ProgressPhase == ppProcess )
  Label1->Caption = "Rozpoczynam pakowanie pliku: " + FileName;

 if( ProgressPhase == ppProcess )
   ProgressBar1->Position = Progress;

 Application->ProcessMessages();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ZipForge1OverallProgress(TObject *Sender, double Progress,
                  TZFProcessOperation Operation, TZFProgressPhase ProgressPhase,
          bool &Cancel)
{
 if( ProgressPhase == ppProcess )ProgressBar2->Position = Progress;

 if( ProgressPhase == ppEnd ) ShowMessage("Spakowano");
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Folder Lock

Nowy postprzez sebaskow » niedziela, 3 czerwca 2012, 09:51

Dziękuję.

Właśnie o to mi chodziło.



Pozdrawiam
Avatar użytkownika
sebaskow
Intelektryk
Intelektryk
 
Posty: 135
Dołączył(a): wtorek, 3 maja 2011, 08:30
Lokalizacja: Katowice
Podziękował : 10
Otrzymał podziękowań: 0
System operacyjny: Windows 10
Kompilator: C++ Builder XE7
Gadu Gadu: 0
    Windows XPChrome

Re: Folder Lock

Nowy postprzez antonio559 » czwartek, 7 czerwca 2012, 19:08

Witam. Ale sie napisalem i wszystko w kanal.
Przetestowalem pokowanie plikow do archiwum. Wszystko dziala poprawnie lecz po otwarciu archiwum wszystkie nazy plikow sa dostepne. Dopiero proba otwarcia jakiegokolwiek pliku wymaga podania hasla. Inna sprawa jest dodanie pliku do archiwum np z Total Commandera plik zostanie dodany lecz juz nie bedzie zabezpieczony. Terza w druga strone. Wyciagniecie pliku z archiwum. Na podstawie pola bazy danych wypakowalem dany plik.
KOD cpp:     UKRYJ  
// Sciezka dostepu do archiwum
 Archiver->FileName = ExtractFilePath(Application->ExeName)+ "105_0555.ZIP";
// Pelna sciezka
//"c:\\Program Files\\CodeGear\\RAD Studio\\5.0\\Projekt\\Archiwizacja\\105_0555.ZIP";

  Archiver->OpenArchive(fmOpenRead + fmShareDenyWrite);
// BaseDir - sciezka dla rozpakowanego pliku Bez podania wypakuje na sciezce exe-ka
//Archiver->BaseDir = "c:\\Program Files\\CodeGear\\RAD Studio\\5.0\\Projekt\\Archiwizacja";
//ShowMessage(ABSTable1->FieldByName("Nazwa")->AsString);
// Przypisanie zmiennej pola bazy danych
abc = ABSTable1->FieldByName("Nazwa")->AsString;
//ShowMessage(abc);
// Wypakowanie z archiwum
Archiver->ExtractFiles(abc);
// Zamniecie archiwum
  Archiver->CloseArchive();
// Ladowanie do Image
Image1->Picture->LoadFromFile(ExtractFilePath(Application->ExeName)+abc);
//Image1->Picture->LoadFromFile("c:\\Program Files\\CodeGear\\RAD Studio\\5.0\\Projekt\\Archiwizacja\\"+abc);

Troche to nie ladne. Wiem ze istnieje mozliwosc wypakowania do pamieci ale nie wiem jak wypakowac i jak dodac do Image.
Image zostaje wywolane w nowym oknie i po zamknieciu okna plik zostanie skasowany.
Inna sprawa jest dodanie pliku do istniejacego archiwum. Niby mi sie udalo lecz nie wiem czy to bedzie prawidlowe. Niestety nie posiadam teraz kodu programu do tej operacji. Zamieszcze go pozniej
Avatar użytkownika
antonio559
Bladawiec
Bladawiec
 
Posty: 5
Dołączył(a): czwartek, 3 maja 2012, 17:20
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Windows XP
Kompilator: Bcb6
Gadu Gadu: 0
    Windows XPFirefox

Następna strona

  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 55 gości