请问如何正确获取程序的当前路径?

时间:2021-07-28 21:46:14
Application.StartupPath,在64位操作系统正常,但是在32位操作系统,它自动跳转到了sqlite指定的一个x86引用组件上

程序所在根目录下,有sqlite自动引用的组件的x64 x86文件夹

请问如何正确获取程序的当前路径?

打开后组件都是一样的
请问如何正确获取程序的当前路径?


现在的问题是,我设置一段代码检测程序根目录下是否存在某个文件,在64位操作系统一切正常,到了32位系统,提示是X86文件夹下找不到相关的文件……

如下代码所示:

            FileInfo file1 = new FileInfo(Application.StartupPath + @"\1.txt");  //如果根目录下没有1.txt则直接执行主程序
            if (!file1.Exists)
            {
                System.Diagnostics.Process.Start(Application.StartupPath + @"\main.exe");
                Environment.Exit(0);
                return;
            }else{//如果有
                     ……
           }

上面的代码在64位系统完全正常,但是到了32位系统,提示X86下没有1.txt的错误提示

8 个解决方案

#1


如果代码错误,为啥64位操作系统一切正常呢……确实小白不懂这个……

#2


看到论坛里面版主回复别人的,这个可以吗:

#3


请问如何正确获取程序的当前路径?

#4


http://blog.achao.cc/16.html  看我手机的文章


        string path = "Data Source =" + System.Windows.Forms.Application.StartupPath + "/all.db;Pooling=true;FailIfMissing=false";  这是我常用的。32 64 win7 xp都是正常使用的。

上面的博客地址还有其他的方法,看看有没有合适你的

#5


引用 3 楼 qq_30660917 的回复:
请问如何正确获取程序的当前路径?

哈哈,正要回答,看到已经引用了  请问如何正确获取程序的当前路径? 

#6


Application.StartupPath 这个是程序启动路径,在资管管理器里双击,使用的是程序路径,但是别的场合就不一定了。

#7


对啊,你不要用Application.StartupPath,还有其他四五种获得启动目录的方法可替代。
还有,你的判断代码应该是在连接sqlite之后了,你试试把获取Application.StartupPath的代码放在sqlite连接数据库之前,也应该能避免问题。

#8


感谢各位,版主的方法的对的,忘记结贴了,散分 请问如何正确获取程序的当前路径?

#1


如果代码错误,为啥64位操作系统一切正常呢……确实小白不懂这个……

#2


看到论坛里面版主回复别人的,这个可以吗:

#3


请问如何正确获取程序的当前路径?

#4


http://blog.achao.cc/16.html  看我手机的文章


        string path = "Data Source =" + System.Windows.Forms.Application.StartupPath + "/all.db;Pooling=true;FailIfMissing=false";  这是我常用的。32 64 win7 xp都是正常使用的。

上面的博客地址还有其他的方法,看看有没有合适你的

#5


引用 3 楼 qq_30660917 的回复:
请问如何正确获取程序的当前路径?

哈哈,正要回答,看到已经引用了  请问如何正确获取程序的当前路径? 

#6


Application.StartupPath 这个是程序启动路径,在资管管理器里双击,使用的是程序路径,但是别的场合就不一定了。

#7


对啊,你不要用Application.StartupPath,还有其他四五种获得启动目录的方法可替代。
还有,你的判断代码应该是在连接sqlite之后了,你试试把获取Application.StartupPath的代码放在sqlite连接数据库之前,也应该能避免问题。

#8


感谢各位,版主的方法的对的,忘记结贴了,散分 请问如何正确获取程序的当前路径?