P : W jaki sposób mogę odebrać/ustawić atrybuty własności plików/katalogów w wirtualnym systemie plików programu RaidenFTPD?

przeznaczone dla : autorów skryptów dla programu RaidenFTPD/programistów

O : Serwer RaidenFTPD obsługuje poziomowy system własności plików, niespotykany wśród innych produktów tego typu dla systemów Windows, jednak nie było rzeczą prostą udostępnić takie informacje dla skryptów zewnętrznych, tym bardziej cieszymy się oddając za darmo w ręce autorów skryptów kontrolkę active-x RaidenModeX (RaidenModeX Active-X control)!

Krok1 : ściąg kontrolkę RaidenSKEY Active-X here

Krok2 : Instalacja

Rozpakuj plik ModeX.zip do katalogu (najlepiej katalogu Twojego projektu), następnie zarejestruj komponent wydając komendę w wierszu poleceń

regsvr32 RaidenModeX.ocx

Krok3 : Otwórz swój projekt, następnie wstaw kontrolkę

Przykład dla środowiska Microsoft Visual C++

1.Otwórz plik projektu

2.Wskaż okienko dialogowe, kliknij prawym przyciskiem myszki->insert activex control

3.Znajdź kontrolkę RaidenModeX Control i kliknij OK

4.W tym samym okienku dialogowym, kliknij prawym przyciskiem myszki i uruchom Class wizard

5.Wybierz zakładkę zmiennych klasy (member variables), znajdź identyfikator kontrolki  IDC_RAIDENMODEXCTRL1, kliknij przycisk Add variable

6.Teraz MSVC zapyta Cię czy chcesz wygenerować klasę C++ Wrapper dla niej , kliknij YES

7.Kiedy pojawi się okienko dialogowe Add Member Variable, wprowadź dla niego właściwą nazwę, np.:  m_modex

8.Teraz idź do pliku źródłowego .CPP i wprowadź wygenerowany plik nagłówkowy RaidenModeX.h

9.Przypuszczalnie wyeksportowałeś ten wskaźnik kontroli jako m_modex ( w końcu to Twoja praca)

10.Jeśli Twój plik nazywa się xxx.zip, znajduje w katalogu e:\temp, i został załadowany tam przez serwer RaidenFTPD, powinien znajdować się tam również plik .raidenftpd.acl

11.Żeby uzyskać informacje na temat tego pliku, użyj metody komponentu 'SetFilePath'

BOOL CRaidenModeX::SetFilePath(LPCTSTR fullpath)

parametr (parameter) :

LPCTSTR fullpath : pełna ścieżka do pliku o którym chcesz zebrać informację poprzez active-x, łańcuch typu (String type)

wartość zwrotna (return value) :

PRAWDA (TRUE) jeśli active-x znalazł wpis w .raidenftpd.acl dla wyspecyfikowanego pliku, NIEPRAWDA (FALSE) jeśli nie

przykład:

m_modex.SetFilePath("i:\\temp\\xxx.zip");

 

12.Po wywołaniu tej metody, zostaną udostępnione następujące właściwości

właściciel pliku (file owner), grupa pliku (file group), tryb pliku (file mode), wolny plik (free file), plik kompletny (complete file)

jednak będziesz musiał użyć następującą metodę, by je pobrać

GetOwner(); // pobiera nazwę właściciela pliku
GetGroup(); //
pobiera nazwę grupy pliku
GetMode(); // pobiera ustawienia uprawnień dla pliku (000-777)
GetFree(); // 0=zlicz plik kredytu , 1=
wolny plik
GetComplete(); // 0=niekompletny lub nieznany , 1=kompletny plik (zweryfikowany plikiem sfv lub sprawdzony zip'em)
GetErrormsg(); // pobiera kody błędu

uwaga : wszystkie wartości zwrotne są typu "string"

13.Żeby ustawić informacje dla pliku/katalogu użyj metody komponentu 'Chmod'

long Chmod(LPCTSTR mode, LPCTSTR uname, LPCTSTR gname, LPCTSTR fullpath, short complete, short free)

parametr (parameter) :

LPCTSTR tryb : 000-777, żeby znaleźć więcej informacji odwołaj się do tej strony

LPCTSTR uname : 1-10 znaków, nazwa użytkownika (username), nie powinna zawierać znaku spacji

LPCTSTR gname : 1-10 znaków, nazwa grupy (group name), nie powinna zawierać znaku spacji

LPCTSTR fullpath : pełna ścieżka do pliku o którym chcesz zebrać informację poprzez active-x, typu "string", dopuszcza się w nazwie znaki ogólne (wildcard)

short complete : 0 lub 1, jeśli plik jest oznaczony jako kompletny lub poprawny

short free : 0 lub 1, jeśli plik ten mogą ściągać bez żadnych ograniczeń wszyscy użytkownicy bez kredytu

wartości zwrotne (return value) :

zawsze 0

przykład:

m_modex.Chmod("755","john","admin","c:\temp\*.zip",1,1);

 

14.Uwaga dla użytkowników języka Visaul Basic

1. Dołącz OCX jako komponent i umieść na formularzu.

2. Zainicjuj metodę SetFilePath(path\file).

3. Jeśli zwrócono wartość PRAWDA właściwości  'właściciel, grupa, kompletny, wolny, tryb, kod  błędu (errormsg)' już zostały odświeżone (nie trzeba wówczas inicjować innej metody GETXXX()).

Wywoływanie drugiej metody jest kłopotliwe. Wydaje się jednak, że w VB nie ma potrzeby robienia tego o ile zadziałało automatyczne wprowadzanie. Dziękuję.

Ostrzeżenie : Warunki licencji

Licencja dla kontrolki active-x RaidenSKEYX ActiveX control do dystrybucji
=============================================================================

Kontrolka active-x RaidenSKEYX ActiveX

Pakiet kontrolki RaidenSKEYX ActiveX pozwala na włączenie RaidenSKEYX.ocx do Twojej 32-bit aplikacji dla Windows, oraz do dystrybuowania tych aplikacji bezpłatnie, jeśli spełnia następujące wymagania

1:Rozpowszechniać można jedynie pakiety z oprogramowaniem klienckim do FTP, nie zawierające pakietów serwera FTP

2.Musisz zawiadomić zespół autorów RaidenFTPD zanim rozpoczniesz dystrybucję kontrolki

3.Muszisz zawrzeć informację o prawach autorskich dla tego komponentu w Twoim pliku czytaj.to lub na stronie Twojego produktu

copyright owner : (C) RaidenFTPD team , 2001

4.Kontrolka nie posiada żadnej gwarancji działanie, i jeśli zdecydujesz się na jej dystrybucję - robisz to tylko i wyłącznie na WŁASNE RYZYKO.
 

I to wszystko

 

Copyright © RaidenFTPD TEAM , ALL RIGHTS RESERVED

REVISION 2.2 , 2002/06/08