Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FtpMethodInfo.cs
Go to the documentation of this file.
1namespace System.Net;
2
3internal sealed class FtpMethodInfo
4{
5 internal string Method;
6
8
10
11 internal string HttpCommand;
12
13 private static readonly FtpMethodInfo[] s_knownMethodInfo = new FtpMethodInfo[13]
14 {
15 new FtpMethodInfo("RETR", FtpOperation.DownloadFile, FtpMethodFlags.IsDownload | FtpMethodFlags.TakesParameter | FtpMethodFlags.HasHttpCommand, "GET"),
16 new FtpMethodInfo("NLST", FtpOperation.ListDirectory, FtpMethodFlags.IsDownload | FtpMethodFlags.MayTakeParameter | FtpMethodFlags.HasHttpCommand | FtpMethodFlags.MustChangeWorkingDirectoryToPath, "GET"),
17 new FtpMethodInfo("LIST", FtpOperation.ListDirectoryDetails, FtpMethodFlags.IsDownload | FtpMethodFlags.MayTakeParameter | FtpMethodFlags.HasHttpCommand | FtpMethodFlags.MustChangeWorkingDirectoryToPath, "GET"),
18 new FtpMethodInfo("STOR", FtpOperation.UploadFile, FtpMethodFlags.IsUpload | FtpMethodFlags.TakesParameter, null),
19 new FtpMethodInfo("STOU", FtpOperation.UploadFileUnique, FtpMethodFlags.IsUpload | FtpMethodFlags.DoesNotTakeParameter | FtpMethodFlags.ShouldParseForResponseUri | FtpMethodFlags.MustChangeWorkingDirectoryToPath, null),
20 new FtpMethodInfo("APPE", FtpOperation.AppendFile, FtpMethodFlags.IsUpload | FtpMethodFlags.TakesParameter, null),
21 new FtpMethodInfo("DELE", FtpOperation.DeleteFile, FtpMethodFlags.TakesParameter, null),
22 new FtpMethodInfo("MDTM", FtpOperation.GetDateTimestamp, FtpMethodFlags.TakesParameter, null),
23 new FtpMethodInfo("SIZE", FtpOperation.GetFileSize, FtpMethodFlags.TakesParameter, null),
24 new FtpMethodInfo("RENAME", FtpOperation.Rename, FtpMethodFlags.TakesParameter, null),
25 new FtpMethodInfo("MKD", FtpOperation.MakeDirectory, FtpMethodFlags.TakesParameter | FtpMethodFlags.ParameterIsDirectory, null),
26 new FtpMethodInfo("RMD", FtpOperation.RemoveDirectory, FtpMethodFlags.TakesParameter | FtpMethodFlags.ParameterIsDirectory, null),
27 new FtpMethodInfo("PWD", FtpOperation.PrintWorkingDirectory, FtpMethodFlags.DoesNotTakeParameter, null)
28 };
29
30 internal bool IsCommandOnly => (Flags & (FtpMethodFlags.IsDownload | FtpMethodFlags.IsUpload)) == 0;
31
32 internal bool IsUpload => (Flags & FtpMethodFlags.IsUpload) != 0;
33
34 internal bool IsDownload => (Flags & FtpMethodFlags.IsDownload) != 0;
35
36 internal bool ShouldParseForResponseUri => (Flags & FtpMethodFlags.ShouldParseForResponseUri) != 0;
37
38 internal FtpMethodInfo(string method, FtpOperation operation, FtpMethodFlags flags, string httpCommand)
39 {
40 Method = method;
41 Operation = operation;
42 Flags = flags;
43 HttpCommand = httpCommand;
44 }
45
46 internal bool HasFlag(FtpMethodFlags flags)
47 {
48 return (Flags & flags) != 0;
49 }
50
51 internal static FtpMethodInfo GetMethodInfo(string method)
52 {
53 method = method.ToUpperInvariant();
55 foreach (FtpMethodInfo ftpMethodInfo in array)
56 {
57 if (method == ftpMethodInfo.Method)
58 {
59 return ftpMethodInfo;
60 }
61 }
63 }
64}
static readonly FtpMethodInfo[] s_knownMethodInfo
bool HasFlag(FtpMethodFlags flags)
static FtpMethodInfo GetMethodInfo(string method)
FtpMethodInfo(string method, FtpOperation operation, FtpMethodFlags flags, string httpCommand)
static string net_ftp_unsupported_method
Definition SR.cs:102
Definition SR.cs:7