修订 基于C#的ftp操作类 中的一个问题

原创 2015年11月18日 17:13:25

一篇 基于C#实现 ftp 文件上传、下载操作的类 的文章在网上流传挺广的。
附两个链接:http://outofmemory.cn/code-snippet/2809/c-achieve-FTP-shangchuan-class,http://www.cnblogs.com/zhangjun1130/archive/2010/03/24/1693932.html
以上两篇文章内容差不多。


其中有个错误:函数 IsValidFileChars 在调用BinarySearch 之前没有进行排序。

/// <summary>
        /// 判断文件名中字符是否合法
        /// </summary>
        /// <param name="FileName">文件名称</param>
        public bool IsValidFileChars(string FileName)
        {
            char[] invalidFileChars = Path.GetInvalidFileNameChars();
	    Array.Sort(invalidFileChars); // 这里必须要进行排序
            char[] NameChar = FileName.ToCharArray();
            foreach (char C in NameChar)
            {
                if (Array.BinarySearch(invalidFileChars, C) >= 0)
                {
                    return false;
                }
            }
            return true;
        }

稍微了解算法的就应该知道原因,实在太low了,就不解释了。

只是因为被这问题坑了一下,在这里mark一下。

相关文章推荐

c#一个FTP操作封装类FTPHelper

参考了网上一些代码,作了一些调整优化。 using System; using System.Collections.Generic; using System.Linq; using Syst...
  • gdjlc
  • gdjlc
  • 2013年09月24日 11:22
  • 10503

c#ftp操作类

001    using System; 002    using System.Collections.Generic; 003    using System.Text; 004    us...

c# FTP操作类

代码 不要忘记引入命名空间 using System.Net; using System.IO; 下面的几个步骤包括了使用FtpWebRequest类实现ftp功能的一般过程 ...

C# 中比较好用的ftp操作类,值得学习

FTP上传过程的类 using System; using System.Collections.Generic; using System.ComponentModel; using System....

c# 操作FTP文件类

c# 操作FTP文件类    string ftpServerIP; string ftpUserID; string ftpPassword; ...

C# FTP操作类

Discuz!NT 2.6带了一个FTP类,位于Discuz.Common/FTP.cs,使用它可以非常的方便的进行文件上传、下载操作以及其他常规文件(夹)操作。下边为该FTP类完整内容:复制  保存...

一个封装比较完整的ftp类(c#)

  • 2009年09月04日 17:55
  • 51KB
  • 下载

比较好用的一个C#FTP类,源码

  • 2011年12月11日 13:02
  • 23KB
  • 下载

C# FTPClient--FTP操作帮助类,上传下载,文件,目录操作

FROM :http://www.sufeinet.com/forum.php?mod=viewthread&tid=1736&extra=page%3D1%26filter%3Dtypeid%26t...

C#Ftp操作类FtpClient

  • 2013年07月28日 11:11
  • 18KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:修订 基于C#的ftp操作类 中的一个问题
举报原因:
原因补充:

(最多只允许输入30个字)