关于文件的默认读取和保存路径(转)

System.Environment.CurrentDirectory
System.IO.Directory.GetCurrentDirectory()
这两个方法获得的路径是一样的,获得的是当前路径,这个路径不一定是程序所在的路径。任何会改变当前路径的方法都会改变它,例如:OpenFileDialog每换一次目录就会改变它。因此,用这2个方法获取程序路径并不可靠。

文件操作所使用的路径就是这个路径,而真正需要用到的路径是根据程序启动位置的变化而变化的.所以应该获取的是: System.Windows.Forms.Application.StartupPath;获取启动应用程序的可执行文件的路径,不包括可执行文件的名称.然后在根据这个路径做文件操作,就没问题了.
以下是转载的原文:

C#获取程序路径的方法中需要注意的地方
版本1
获取运行程序路径的方法主要有以下7种:

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
他获取的是Module的文件名,如果在VS2008的调试环境中,获取的是 [程序名].vshost.exe的完整文件名。
System.Environment.CurrentDirectory
System.IO.Directory.GetCurrentDirectory()
这两个方法获得的路径是一样的,获得的是当前路径,这个路径不一定是程序所在的路径。任何会改变当前路径的方法都会改变它,例如:OpenFileDialog每换一次目录就会改变它。因此,用这2个方法获取程序路径并不可靠。
System.AppDomain.CurrentDomain.BaseDirectory
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
这两个方法是可靠的获取程序路径的方法。返回的路径最末以"\"结尾。可以方便的在后面加入任何Path。当然就算没有也可以用Path.Combine来合并路径以获得想要的路径。
System.Windows.Forms.Application.StartupPath
这个方法也是可靠的获取程序路径的方法。不过返回的路径最末并没有"\"结尾。另外因为是Forms命名空间的。因此如果使用WPF还是不用的好。
System.Windows.Forms.Application.ExecutablePath
这个方法获取的是执行程序的完整文件名。是最可靠的方式,只需要去掉程序文件名就可以获得路径。
版本2:

//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)
//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
string str = System.Environment.CurrentDirectory;
result: X:\xxx\xxx (.exe文件所在的目录)

//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
string str = System.AppDomain.CurrentDomain.BaseDirectory;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取和设置包含该应用程序的目录的名称。
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
result: X:\xxx\xxx\ (.exe文件所在的目录+"\")

//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str = System.Windows.Forms.Application.StartupPath;
result: X:\xxx\xxx (.exe文件所在的目录)

//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str = System.Windows.Forms.Application.ExecutablePath;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取应用程序的当前工作目录(不可靠)。
string str = System.IO.Directory.GetCurrentDirectory();
result: X:\xxx\xxx (.exe文件所在的目录)
-------------------------------------------
C#获取本执行程序所在的当前路径
1.获取和设置当前目录的完全限定路径。
string str = System.Environment.CurrentDirectory;
Result: C:\xxx\xxx

2.获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str = System.Windows.Forms.Application.StartupPath;
Result: C:\xxx\xxx

3.获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名。
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
Result: C:\xxx\xxx\xxx.exe

4.获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
string str = System.AppDomain.CurrentDomain.BaseDirectory;
Result: C:\xxx\xxx\

5.获取应用程序的当前工作目录。
string str = System.IO.Directory.GetCurrentDirectory();
Result: C:\xxx\xxx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spyder默认读取文件的位置取决于当前工作目录。你可以通过以下方式查看和更改当前工作目录: 1. 点击Spyder界面左上角的文件夹图标,打开文件浏览器。 2. 在文件浏览器中,右键单击任何文件文件夹,选择“设置工作目录”选项。 3. 在弹出的“设置工作目录”窗口中,你可以查看和更改当前工作目录。你还可以选择将当前工作目录设置为项目目录,这样将来所有与该项目相关的文件都将保存在该目录下。 4. 点击“确认”按钮保存更改,关闭窗口。 现在你可以在Spyder中打开任何文件,它将默认在当前工作目录中查找文件。 ### 回答2: 要查看Spyder默认读取文件的位置,可以按照以下步骤进行操作: 1. 打开Spyder集成开发环境。 2. 在顶部菜单栏中选择“工具”。 3. 在下拉菜单中选择“首选项”。 4. 在弹出的对话框中,选择“IPython控制台”选项卡。 5. 在该选项卡中,可以看到“工作目录”字段,这是Spyder默认读取文件的位置。 6. 在字段旁边,有一个文件夹图标。点击该图标,可以选择其他目录作为默认工作目录。 7. 在出现的文件浏览器中,选择您想要作为默认读取文件位置的目录,并点击“选择文件夹”按钮。 8. 最后,关闭对话框,Spyder会将您选择的目录设置为默认工作目录。 通过上述步骤,您就可以查看和更改Spyder默认读取文件的位置了。请注意,默认工作目录是指Spyder启动时首先打开的目录。如果您的代码中涉及到文件读写,但没有指定具体路径,Spyder将在默认工作目录中寻找文件。 ### 回答3: 要查看Spyder默认读取文件的位置,可以按照以下步骤进行: 1. 打开Spyder集成开发环境。 2. 在主菜单中点击“工具”选项。 3. 在下拉菜单中选择“首选项”。 4. 一个“首选项”窗口将在界面中弹出。 5. 在“首选项”窗口的左侧面板中,找到并点击“Python”选项。 6. 在右侧的“Python(全局解释器)”选项卡中,您将看到“当前工作目录”字段。 7. 在“当前工作目录”字段旁边,有一个文件夹图标。点击此图标。 8. 弹出一个对话框,显示当前设置为默认读取文件的位置。 9. 在对话框中,您可以看到默认读取文件位置的路径。 通过以上步骤,您可以方便地查看Spyder默认读取文件的位置,从而更好地进行相关的文件操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值