24 assert(fs !=
nullptr);
26 auto err = fs->stat(path, stat);
34 statValid = dir.
next();
42 debug_w(
"[FTP] Warning: system clock hasn't been set!");
63 statValid = dir.
next();
77 String timestr = dt.format((dt.Year == year) ?
_F(
"%b %e %H:%M") :
_F(
"%b %e %Y"));
81 buf[0] = stat.
isDir() ?
'd' :
'-';
83 buf[2] = stat.
attr[FileAttribute::ReadOnly] && (user.role >= stat.
acl.
writeAccess) ?
'w' :
'-';
96 bool statValid{
false};
uint16_t length
OUT: length of name.
Definition: NameBuffer.h:47
Date and time class.
Definition: DateTime.h:77
const char * c_str() const
Get a constant (un-modifiable) pointer to String content.
Definition: WString.h:641
Definition: FtpDataStream.h:40
FileAttributes attr
Definition: Stat.h:58
#define debug_w
Definition: debug_progmem.h:98
uint32_t size
Size of file in bytes.
Definition: Stat.h:54
const User & getUser() const
Definition: FtpServerConnection.h:53
#define _F(str)
Declare and use a flash string inline.
Definition: FakePgmSpace.h:83
const Stat & stat() const
Definition: Directory.h:110
#define PSTR_ARRAY(name, str)
Define a flash string and load it into a named array buffer on the stack.
Definition: FakePgmSpace.h:176
The String class.
Definition: WString.h:136
time_t now(TimeZone timeType=eTZ_Local) const
Get the current date and time.
bool open(const String &dirName=nullptr)
Open a directory and attach this stream object to it.
FtpDataFileList(FtpServerConnection &connection, const String &path, bool namesOnly=false)
Definition: FtpDataFileList.h:20
FtpServerConnection & control
Definition: FtpDataStream.h:83
Wrapper class for enumerating a directory.
Definition: Directory.h:31
TcpConnectionEvent
Definition: TcpConnection.h:25
bool isSet() const
Determine if setTime() has been called yet.
Definition: SystemClock.h:86
ACL acl
Access Control.
Definition: Stat.h:57
#define debug_d
Definition: debug_progmem.h:100
void finishTransfer()
Definition: FtpDataStream.h:58
int m_snprintf(char *buf, int length, const char *fmt,...)
bool setLength(size_t length)
set the string length accordingly, expanding if necessary
bool completed
Definition: FtpDataStream.h:84
IFS::FileSystem * getFileSystem()
Get the currently active file system, if any.
Definition: Core/FileSystem.h:97
Definition: FtpServerConnection.h:27
uint16_t getAvailableWriteSize()
Definition: TcpConnection.h:93
File Status structure.
Definition: Stat.h:51
size_t count() const
Definition: Directory.h:95
constexpr int FS_OK
Definition: Core/FileSystem.h:34
UserRole readAccess
Definition: Access.h:36
void getStatLine(const FileStat &stat, String &line)
Definition: FtpDataFileList.h:71
void transferData(TcpConnectionEvent sourceEvent) override
Definition: FtpDataFileList.h:46
Definition: FtpDataFileList.h:17
TimeStamp mtime
File modification time.
Definition: Stat.h:56
bool isDir() const
Definition: Stat.h:87
SystemClockClass SystemClock
Global instance of system clock object.
int writeString(const char *data, uint8_t apiflags=TCP_WRITE_FLAG_COPY)
Writes string data directly to the TCP buffer.
Definition: TcpConnection.h:63
FileSystem * getFileSystem() const
Definition: FsBase.h:63
NameBuffer name
Name of file.
Definition: Stat.h:53
bool concat(const String &str)
Definition: WString.h:317
UserRole writeAccess
Definition: Access.h:37