惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
S
SegmentFault 最新的问题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Attack and Defense Labs
Attack and Defense Labs
F
Full Disclosure
Vercel News
Vercel News
N
News | PayPal Newsroom
The GitHub Blog
The GitHub Blog
H
Hacker News: Front Page
H
Heimdal Security Blog
P
Privacy International News Feed
博客园 - 司徒正美
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cisco Blogs
L
Lohrmann on Cybersecurity
D
Docker
Recent Announcements
Recent Announcements
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
博客园 - 叶小钗
Google Online Security Blog
Google Online Security Blog
Martin Fowler
Martin Fowler
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
S
Secure Thoughts
博客园 - Franky
博客园_首页
阮一峰的网络日志
阮一峰的网络日志
P
Palo Alto Networks Blog
Latest news
Latest news
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
Last Week in AI
Last Week in AI
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Cisco Talos Blog
Cisco Talos Blog
Hacker News: Ask HN
Hacker News: Ask HN
T
Threatpost
T
Tenable Blog
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学

博客园 - StephenJu

EntLib--Unity Application Block 1.x DevExpress杂项 .Net异步机制 简单的异步调用 按s1_Name+uuid为一组拆分DS 枚举 分割dataset:待改进... 序列化 DataGridViewComboBoxColumn的使用 datagridview数据验证 通过关键字查找到dgv相关记录后定位 禁止一个程序启动多个实例 将文本文件的内容写进某个表中 获取Assembly的运行路径 获取ArrayList中的数据(foreach) 关于DataTable里大批量查找的更快速的方法 抽象类 DynamicCreateMenu DataTable的简单方法
IO
StephenJu · 2008-05-26 · via 博客园 - StephenJu

//*********************************************************//
主要属性:
    Description:树视图控件上显示的说明文本,如上图中的”选择要进行计算的目录”;
    RootFolder:获取或设置从其开始浏览的根文件夹,如上图中设置的我的电脑(默认为桌面);
    SelectedPath:获取或设置用户选定的路径,如果设置了该属性,打开对话框时会定位到指定路径,默认为根文件夹,关闭对话框时根据该属性获取用户用户选定的路径;
    ShowNewFolderButton:获取或设置是否显示新建对话框按钮;

    主要方法:
    ShowDialog:打开该对话框,返回值为DialogResult类型值,如果为DialogResult.OK,则可以由SelectedPath属性获取用户选定的路径;

    dlgOpenFolder.Description = "选择要进行计算的目录";
    dlgOpenFolder.RootFolder = Environment.SpecialFolder.MyComputer;
    dlgOpenFolder.ShowNewFolderButton = true;
    DialogResult result = dlgOpenFolder.ShowDialog(this);
    if (result == DialogResult.OK)
    {
        txtDirPath.Text = dlgOpenFolder.SelectedPath;
    }
//*********************************************************//

//*********************************************************//
主要属性:
    CheckFileExists:该值指示如果用户指定不存在的文件名,对话框是否显示警告;
    FileName(s):获取或设置一个包含在文件对话框中选定的文件名的字符串;
    Filter:获取或设置对话框的文件类型列表;
    FilterIndex:对话框的文件类型列表的索引(基于1的);
    InitialDirectory:获取或设置文件对话框显示的初始目录;
    Multiselect:该值指示对话框是否允许选择多个文件;
    ShowReadOnly:该值指示对话框是否包含只读复选框;
    Title:获取或设置文件对话框标题;
    主要方法:
    OpenFile:打开用户选定的具有只读权限的文件;
    ShowDialog:打开该模式对话框;
//*********************************************************//

//*********************************************************//
主要属性:
    大部分与打开文件对话框类似,此处略过,下面几个值得注意:
    CreatePrompt:该值指示如果用户指定不存在的文件,是否提示用户允许创建该文件;
    OverwritePrompt:该值指示如果用户指定的文件名已存在,对话框是否显示警告;
    主要方法:
    OpenFile:打开用户选定的具有读/写权限的文件;
    ShowDialog:打开该模式对话框;
dlgSaveFile.Title = "打开目标文件";
    dlgSaveFile.InitialDirectory = @"C:\Inetpub\";
    dlgSaveFile.Filter = "文本文件 (*.txt)|*.txt|所有文件 (*.*)|*.*";
    dlgSaveFile.FilterIndex = 2;
    DialogResult dr = dlgSaveFile.ShowDialog();
    if (dr == DialogResult.OK)
    {
        string fileName = dlgSaveFile.FileName;
    }
//*********************************************************//

//*********************************************************//
    /// <summary>
    
/// 计算一个目录的大小
    
/// </summary>
    
/// <param name="di">指定目录</param>
    
/// <param name="includeSubDir">是否包含子目录</param>
    
/// <returns></returns>
    private long CalculateDirSize(DirectoryInfo di, bool includeSubDir)
    {
        
long totalSize = 0;// 检查所有(直接)包含的文件
        FileInfo[] files = di.GetFiles();
        
foreach (FileInfo file in files)
        {
            totalSize 
+= file.Length;
        }
// 检查所有子目录,如果includeSubDir参数为true
        if (includeSubDir)
        {
            DirectoryInfo[] dirs 
= di.GetDirectories();
            
foreach (DirectoryInfo dir in dirs)
            {
                totalSize 
+= CalculateDirSize(dir, includeSubDir);
            }
        }
        
return totalSize;
    }
//*********************************************************//