日期:2014-05-18  浏览次数:20973 次

OpenFileDialog遇到的问题
我在程序里出错时会记录错误日志。程序每2秒都会检测一下和Socket服务器的连接状态,如果错误就记录在日志中。因为服务端程序没有打开监听,所以程序会不停的记录错误日志,路径为程序的根目录的Errorlog文件夹。

现在我使用OpenFileDialog打开一个文件,默认浏览路径设为程序的启动路径。我发现每当我切换到另一个文件夹下时,都会新建一个Errorlog文件夹来记录日志,似乎把我浏览的目录当成当前目录了。。因为每2秒记录一次所以记录我浏览过的文件夹下都多出了一个错误日志文件夹。。。怎么才能避免这个情况呢。。因为记录日志的代码是引用的外部的dll无法修改,所以只能从OpenDialog这里看看能不能改了。

以下是我的代码

C# code

        private void btnBrowser_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            fileDialog.Title = "选择文件";
            fileDialog.InitialDirectory = Application.StartupPath.ToString();
            fileDialog.Filter = "JPEG Files (*.jpg)|*.jpg|BMP Files (*.bmp)|*.bmp|PNG Files (*.png)|*.png";
            fileDialog.FilterIndex = 1;
            fileDialog.RestoreDirectory = true;

            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                FileInfo file = new FileInfo(fileDialog.FileName);
                txtImgUrl.Text = file.FullName;
            }
        }



------解决方案--------------------
没有你的测试环境,你把
fileDialog.InitialDirectory = Application.StartupPath.ToString();
修改成别的目录试试看
------解决方案--------------------
这是一个误解, StartupPath是指程序的起始位置, 不一定是exe所在的目录, 这是一个application的环境变量, 很多方法可以改变它.
------解决方案--------------------
要不设置成当前EXE对应的路径