首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么检测指定目录下的指定文件是否存在

2012-04-27 
如何检测指定目录下的指定文件是否存在比如说我A文件夹下应该有1.txt文件,但是我放的是2.txt文件,控制台就

如何检测指定目录下的指定文件是否存在
比如说我A文件夹下应该有1.txt文件,但是我放的是2.txt文件,控制台就会告诉我这个文件位置放错了,2.txt应该放在B文件夹里。
请问这个要如何实现啊?



[解决办法]

C# code
        private void process()        {            // 这里假设d:/test/目录下只有一级文件夹,即,D:/test/下只有1,2,3,4,5,6 之类的文件,而1下面再也没有文件夹了。而这些1,2,3文件夹下的文件名,只有a.txt,b.txt,c.txt.....            var files = Directory.GetFiles( @"D:/test/" );            Regex reg = new Regex( @"(D:/test/)([^/]*)/([^.]*\.txt)", RegexOptions.IgnoreCase );            if ( files != null )            {                int fileCount = 0;    // 文件总数                int errCount = 0;    //错误总数                foreach ( var file in files )                {                    var m = reg.Match( file );                    if ( m.Success )                    {                        fileCount++;                        if ( getDirName( m.Groups[3].Value ) == m.Groups[2].Value )                        {                            // 移到正确的位置                            File.Move( file, m.Groups[1].Value + getDirName( m.Groups[3].Value ) + m.Groups[3].Value );                        }                        else                            errCount++;                    }                }            }            // 总数:fileCount;            // 错误:errCount;            // 错误率:errCount/(fileCount * 1.0)        }        /// <summary>        /// 判断该文件应该放在什么文件夹下(也就是对应规则设置的地方了,假设文件名是A.txt,B.txt等等)        /// </summary>        /// <param name="fileName"></param>        /// <returns></returns>        private string getDirName( string fileName )        {            /// 即,表示,如果文件名第一个符是A。则返回应该存放的文件夹名应该是 1,如果是Z的话,则返回26            return Convert.ToInt32( fileName[0] - 'A' + 1 ).ToString();            //// 或者            //switch ( fileName )            //{            //    case "A.txt": return "1";            //    case "B.txt": return "2";            //    default: return "";            //}        } 

热点排行