首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mapimailmessage后文件更改的c#路径

使用mapimailmessage后文件更改的c#路径
EN

Stack Overflow用户
提问于 2016-05-26 13:35:05
回答 1查看 66关注 0票数 0

有一种奇怪的行为,我不明白。

在我的问题中,这部分代码是隐含的。

代码语言:javascript
复制
public static NpgsqlConnection ConnectRead()
    {
        string pass = "password_here";
        StreamReader sr = new StreamReader(@"Stc.cts");
        string line;
        string conn = "";

        while ((line = sr.ReadLine()) != null)
        {

            conn = line;
        }
        sr.Close();

        conn = Cdf.Cdf.Crypt.Decrypt(conn, pass);

        NpgsqlConnection con = new NpgsqlConnection(conn);

        con.Open();

        return con;

    }

代码语言:javascript
复制
if (mailCheckBox.Checked == true)
                {
                    string subject = pototal;
                    string body = "Voici le bon de commande";

                    MapiMailMessage message = new MapiMailMessage(subject, body);
                    //message.Files.Add(serveur + nomfichier);
                    message.Files.Add(@"c:\pdftemp\" + nomfichier);


                    message.ShowDialog();
                }

如您所见,第一部分是连接字符串,第二部分是打开默认邮件软件的mapi。

我的问题是:如果我不使用我的程序的mapi部分,一切都会很完美。如果我使用mapi部分,我的程序将停止连接,因为它似乎将Stc.cts路径更改为c:/foxmail/Stc.cts。

如果有人有线索,我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-26 15:12:29

似乎您的代码使用的是相对路径。您应该提供一个绝对路径,以防有什么东西改变“当前”目录。

例如,如果您的文件与可执行文件位于相同的路径上,则可以这样做:

代码语言:javascript
复制
string strAppDir = Path.GetDirectoryName(
        System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
// or...
// string strAppDir = AppDomain.CurrentDomain.BaseDirectory;
string strFullPathToMyFile = System.IO.Path.Combine(strAppDir, "Stc.cts");
StreamReader sr = new StreamReader(strFullPathToMyFile);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37462445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档