C#如何判断文件夹小于100M

解决方案 »

  1.   


      string FileSize =   this.FileUpload1.PostedFile.ContentLength;//这就是文件大小  if((imgSize/1024)<10240)//PS:小于100M,没记错的话 1M是1024KB
      {
         //自由发挥
      }
      

  2.   

    http://www.cnblogs.com/firedoom/archive/2008/06/23/1228391.html
      

  3.   

    我会计算文件夹大小,是LONG型,我不知道怎么把他换成M
      

  4.   

    刚开始取出来的大小是字节,要得到M,就是连续两次除以1024啊1M=1024K
    1K=1024Byte
      

  5.   

    private int getsize(string dirp)
        {
            DirectoryInfo mydir = new DirectoryInfo(dirp);
            foreach (FileSystemInfo fsi in mydir.GetFileSystemInfos())
            {
                if (fsi is FileInfo)
                {
                    FileInfo fi = (FileInfo)fsi;
                    str+=int.Parse(fi.Length.ToString());
                }
                else
                {
                    DirectoryInfo di = (DirectoryInfo)fsi;
                    string new_dir = di.FullName;
                    getsize(new_dir);
                }
            }
            return str;
        }
    }
      

  6.   

    测试环境
    WinXP(SP2)、C#3.0、Dot NET FRAMEWORK 3.5
            /// <summary>
            /// 获取指定文件夹的大小
            /// </summary>
            /// <param name="sub"></param>
            /// <returns>以兆(M)为单位,舍弃小数部分</returns>
            private static long GetDirSize( string sub )
            {
                DirectoryInfo dir = new DirectoryInfo( sub );
                FileInfo[] files = dir.GetFiles( "*.*", SearchOption.AllDirectories );
                long size = 0;
                foreach ( FileInfo item in files )
                {
                    size += item.Length;
                }            return size / 1024 / 1024;
            }
      

  7.   

    private string FormatSize(long size)
            {
                if (size < 1024)
                {
                    return size.ToString() + " B";
                }            if (size < 1024 * 1024)
                {
                    return Math.Round((double)size / 1024, 2).ToString() + " KB";
                }            if (size < 1024 * 1024 * 1024)
                {
                    return Math.Round((double)size / 1024 / 1024, 2).ToString() + " MB";
                }
                else
                {
                    return Math.Round((double)size / 1024 / 1024 / 1024, 2).ToString() + " GB";
                }
            }