Конференция "Сети" » В IdFTPServer открыть все файлы
 
  • Fedot (19.11.10 14:46) [0]
    Использую Indy_10_FTPServer пример, в примере можно открыть определенную папку,

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    AppDir := ExtractFilePath(Application.Exename);
    end;

    procedure TForm1.IdFTPServer1ListDirectory(ASender: TIdFTPServerContext;
     const APath: string; ADirectoryListing: TIdFTPListOutput; const ACmd,
     ASwitches: string);
    var
    LFTPItem :TIdFTPListItem;
    SR : TSearchRec;
    SRI : Integer;
    begin
     ADirectoryListing.DirFormat := doUnix;
     SRI := FindFirst(AppDir + APath + '\*.*', faAnyFile - faHidden - faSysFile, SR);
     While SRI = 0 do
     begin
       LFTPItem := ADirectoryListing.Add;
       LFTPItem.FileName := SR.Name;
       LFTPItem.Size := SR.Size;
       LFTPItem.ModifiedDate := FileDateToDateTime(SR.Time);
       if SR.Attr = faDirectory then
        LFTPItem.ItemType   := ditDirectory
       else
        LFTPItem.ItemType   := ditFile;
       SRI := FindNext(SR);
     end;
     FindClose(SR);
     SetCurrentDir(AppDir + APath + '\..');
    end;



    Как открыть все диски, добавил по циклу диски, листинг при заходе показывает, но вот работы с файлами нет, так как

    procedure TForm1.IdFTPServer1StoreFile(ASender: TIdFTPServerContext;
     const AFileName: string; AAppend: Boolean; var VStream: TStream);
    begin
    if not Aappend then
      VStream := TFileStream.Create(ReplaceChars(AppDir+AFilename),fmCreate)
    else
      VStream := TFileStream.Create(ReplaceChars(AppDir+AFilename),fmOpenWrite)
    end;



    Из-за того, что AppDir константа.

    Допустим AppDir = "c:\" тогда работа с файлами будет доступна на диске С, а на диске Д следовательно не будет.

    Есть ли более расширенные примеры работы с IdFTPServer интересует расшаривание директорий по списку.
  • DimaBr © (19.11.10 15:03) [1]
    Внимание! Здесь обсуждаются вопросы, связанные с разработкой компонентов, редакторов свойств, редакторов компонентов и экспертов IDE.
    Вопросы по поиску и использованию готовых компонентов, редакторов или экспертов являются нарушением тематики и могут быть удалены.
  • Сергей М. © (19.11.10 16:08) [2]

    >  AppDir константа


    Какая же это "константа", если ты собственноручно устанавливаешь ей значение во время выполнения ?)

    Какое установил - то и получи)
  • Fedot (19.11.10 23:42) [3]
    Сергей М., дело в том что по факту это получается константа. Переменно присваивается значение и изменению не подлежит, так как IdFTPServer1ListDirectory заполняется с нужной директорией AppDir
  • Сергей М. © (20.11.10 15:08) [4]

    > Fedot   (19.11.10 23:42) [3]


    Ахинею какую-то ты несешь)

    > присваивается значение и изменению не подлежит

    Религия запрещает изменить ?
 
Конференция "Сети" » В IdFTPServer открыть все файлы
Есть новые Нет новых   [134436   +25][b:0][p:0.001]