C# 从OpenFileDialog获取文件大小?

C# 从OpenFileDialog获取文件大小?,c#,openfiledialog,C#,Openfiledialog,如何在我的Openfiledialog中获取当前选定文件的文件大小?您不能直接从OpenFieldDialog获取它 您需要获取文件路径并从中构造一个新的FileInfo对象,如下所示: var fileInfo = new FileInfo(path); 从FileInto可以得到文件的大小,如下所示 fileInfo.Length 有关更多信息,请查看此页面。我认为有3种方法,创建自定义打开对话框,或将视图编码为详细信息,或要求用户使用详细信息视图。如果您的意思是,当对话框运行时,我怀疑

如何在我的Openfiledialog中获取当前选定文件的文件大小?

您不能直接从OpenFieldDialog获取它

您需要获取文件路径并从中构造一个新的FileInfo对象,如下所示:

var fileInfo = new FileInfo(path);
从FileInto可以得到文件的大小,如下所示

fileInfo.Length

有关更多信息,请查看此页面。

我认为有3种方法,创建自定义打开对话框,或将视图编码为详细信息,或要求用户使用详细信息视图。如果您的意思是,当对话框运行时,我怀疑您只是将文件视图更改为详细信息。但是,如果您是指以编程方式,我怀疑您必须在选择文件时挂接windows消息

没有互操作,就像第一条注释一样,一旦对话完成,即选择了文件,这将给出大小

public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                if (openFileDialog1.Multiselect)
                {
                    long total = 0;
                    foreach (string s in openFileDialog1.FileNames)
                        total += new FileInfo(s).Length;
                    MessageBox.Show(total.ToString());


                }
                else
                {
                    MessageBox.Show(new FileInfo(openFileDialog1.FileName).Length.ToString());
                }


            }
        }
对话期间的文件大小我觉得需要使用互操作


Andrew

你是指对话打开时,还是在对话关闭后?你是指该程序还是该程序的用户?我有一种感觉,这里需要一些互操作:-)顺便说一句,问题很好,有兴趣请进一步澄清,根据Richard的评论。