Ejemplo n.º 1
0
 /// <summary>
 /// 格式化时间
 /// </summary>
 public static string GetTime(this HtmlHelper helper, DateTime dt)
 {
     if (res.Lang == "zh-cn" || res.Lang == "zh-tw")
     {
         return dt.ToString("yyyy-MM-dd HH:mm");
     }
     else
     {
         DateTimeFormatInfo myDTFI = new CultureInfo(res.Lang, false).DateTimeFormat;
         string strmon = myDTFI.GetAbbreviatedMonthName(dt.Month);
         return strmon + ". " + dt.Day + ", " + dt.Year + " " + dt.ToString("HH:mm");
     }
 }
Ejemplo n.º 2
0
        // 处理LIST/NLIST命令,想客户端发送当前或指定目录下的所有文件名和子目录名
        private void CommandLIST(User user, string parameter)
        {
            string sendString = string.Empty;
            DateTimeFormatInfo dateTimeFormat = new CultureInfo("en-US", true).DateTimeFormat;

            // 得到目录列表
            string[] dir = Directory.GetDirectories(user.currentDir);
            if (string.IsNullOrEmpty(parameter) == false)
            {
                if (Directory.Exists(user.currentDir + parameter))
                {
                    dir = Directory.GetDirectories(user.currentDir + parameter);
                }
                else
                {
                    string s = user.currentDir.TrimEnd('/');
                    user.currentDir = s.Substring(0, s.LastIndexOf("/") + 1);
                }
            }
            for (int i = 0; i < dir.Length; i++)
            {
                string folderName = Path.GetFileName(dir[i]);
                DirectoryInfo d = new DirectoryInfo(dir[i]);

                // 按下面的格式输出目录列表
                sendString += @"dwr-\t" + Dns.GetHostName() + "\t" + dateTimeFormat.GetAbbreviatedMonthName(d.CreationTime.Month)
                    + d.CreationTime.ToString(" dd yyyy") + "\t" + folderName + Environment.NewLine;
            }

            // 得到文件列表
            string[] files = Directory.GetFiles(user.currentDir);
            if (string.IsNullOrEmpty(parameter) == false)
            {
                if (Directory.Exists(user.currentDir + parameter + "/"))
                {
                    files = Directory.GetFiles(user.currentDir + parameter + "/");
                }
            }
            for (int i = 0; i < files.Length; i++)
            {
                FileInfo f = new FileInfo(files[i]);
                string fileName = Path.GetFileName(files[i]);
                // 按下面的格式输出文件列表
                sendString += "-wr-\t" + Dns.GetHostName() + "\t" + f.Length + " "
                    + dateTimeFormat.GetAbbreviatedMonthName(f.CreationTime.Month)
                    + f.CreationTime.ToString(" dd yyyy") + "\t" + fileName + Environment.NewLine;
            }

            // List命令指示获得FTP服务器上的文件列表字符串信息
            // 所以调用List命令过程,客户端接受的指示一些字符串
            // 所以isBinary是false,代表传输的是ASCII数据

            // 但是为了防止isBinary因为 设置user.isBinary = false而改变
            // 所以事先保存user.IsBinary的引用(此时为true),方便后面下载文件
            bool isBinary = user.isBinary;
            user.isBinary = false;
            RepleyCommandToUser(user, "150 Opening ASCII data connection");
            InitDataSession(user);
            SendByUserSession(user, sendString);
            RepleyCommandToUser(user, "226 Transfer complete");
            user.isBinary = isBinary;
        }