int fileNum = 0; /**//// <summary> /// 获取某目录下的所有文件(包括子目录下文件)的数量 /// </summary> /// <param name="srcPath"></param> /// <returns></returns> public int GetFileNum(string srcPath) { try { // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath); // 遍历所有的文件和目录 foreach(string file in fileList) { // 先当作目录处理如果存在这个目录就重新调用GetFileNum(string srcPath) if(System.IO.Directory.Exists(file)) GetFileNum(file); else fileNum++; } } catch (Exception e) { MessageBox.Show (e.ToString()); } return fileNum; }
闲着无聊,顺便给翻译成VB.NET -------------------------- Private fileNum As Integer = 0 '获取某目录下的所有文件(包括子目录下文件)的数量 Public Function GetFileNum(ByVal srcPath As String) As Integer Try '得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组 Dim fileList As String() = System.IO.Directory.GetFileSystemEntries(srcPath) '遍历所有的文件和目录 For Each file As String In fileList '先当作目录处理如果存在这个目录就重新调用GetFileNum(string srcPath) If System.IO.Directory.Exists(file) Then GetFileNum(file) Else System.Math.Min(System.Threading.Interlocked.Increment(fileNum), fileNum - 1) End If Next Catch e As Exception MessageBox.Show(e.ToString) End Try Return fileNum End Function