最近因為寫到使用FileDialog開檔讀檔的關係,所以在打開時,會常常需要移動到資料夾所在路徑,因此就在想要如何才能指定開啟FileDialog 能夠就指定在想要的資料夾上,並且移動整個專案時,不會因為絕對路徑的關係發生錯誤,以下開始。

此篇適用WinForm

如何取得專案所在的資料夾路徑


方法有很多種,這邊介紹WinForm與Console模式下可是用的方式(有興趣可以去看參考資料的來源):

1.抓取 WinForm 應用程式所在的目錄,傳應用程式設定執行檔輸出目錄的路徑

string path = System.Windows.Forms.Application.StartupPath

2.抓取 Console 與WPF應用程式所在的目錄可使用的方式

string path = System.AppDomain.CurrentDomain.BaseDirectory

3.透過Directory的GetCurrentDirectory (WinForm、WPF)取得目前應用程式工作目錄

string path = Directory.GetCurrentDirectory()

如何移動目前的路徑至上層


1.使用DirectoryInfo類別初始化,並傳入專案執行檔所在目錄

DirectoryInfo dir = new DirectoryInfo(System.Windows.Forms.Application.StartupPath);
 

2.移動至上層目錄

string s = dir.Parent; 
 

3.若想要取得絕對路徑

string s = dir.Parent.FullName; 
 

4.搭配使用OpenFileDialog

OpenFileDialog dlg = new OpenFileDialog();
dlg.InitialDirectory = dir.Parent.Parent.FullName + @"\想要移動的其他目錄"; //指定FileDialog開啟時所在的目錄
dlg.RestoreDirectory = true;

路徑 z的更多相关文章

  1. C#-Windows服務以LocalSystem賬戶安裝的話無法獲取我的文檔路徑

    如圖,如果Window服務以上圖 Account安裝運行,則無法獲取到 以下路徑: System.Environment.GetFolderPath(Environment.SpecialFolder ...

  2. C++ 檔案、資料夾、路徑處理函式庫:boost::filesystem

    原帖:https://tokyo.zxproxy.com/browse.php?u=uG7kXsFlW1ZmaxKEvCzu8HrCJ0bXIAddA1s5dtIUZ%2FYzM1u9JI7jjKLT ...

  3. html image 圖像路徑

    src可以指定image路徑: alt可以設置替代的文本:當瀏覽器沒有辦法加載到圖片的時候,就會顯示替換的文本,提示什麼圖片未加載. width和heigt可以設置圖片的大小,從而對圖片進行縮放. h ...

  4. [Batch檔案筆記] 在UNC路徑中執行Batch檔

    為了讓其他人可以免安裝又可以執行python程式所以我把python portable版本 winpython 放在samba的空間共享但是使用者如果要開 winpython cammand prom ...

  5. JVM菜鸟进阶高手之路一[z]

    https://mp.weixin.qq.com/s/qD1LFmsOiqZHD8iZX97OfA? 问题现象 代码如下,使用 ParNew + Serial Old 回收器组合与使用 ParNew ...

  6. 「拒絕存取路徑 'C:\Users\xxx\AppData\Local\Temp\Temporary ASP.NET Files\apname\3a1b3704\f7fc6d0c\App_Code.l8ieogii.0.cs」的錯誤!

    修改web.config中的system.web->compilation tag中,多加入tempDirectory="可存取的目錄"   <system.web&g ...

  7. 更改 terminal 開啟時,預設的路徑

    echo "cd /media" >> ~/.bashrc open a new terminal (ctrl + alt + t)

  8. 改變iTunes備份路徑

    *** 在任意分區建立文件夾用來移動iTunes原有備份 *** 例如:move"c:\user\vhd\appdata\roaming\apple computer"全部到&qu ...

  9. tomcat配置虛擬路徑

    1.server.xml设置 打开Tomcat安装目录,在server.xml中<Host>标签中,增加<Context docBase="硬盘目录" path= ...

随机推荐

  1. 【制作镜像】BCEC制作镜像

    如要制作的新镜像已存在标准版本镜像,即linux发行版本相同(此处指CentOS6.5 64位),可利用BCEC制作. 在BCEC创建centos6.5系统的可联外网的虚机,ssh到此虚机,用yum方 ...

  2. 九度0J 1374 所有员工年龄排序

    题目地址:http://ac.jobdu.com/problem.php?pid=1374 题目描述: 公司现在要对所有员工的年龄进行排序,因为公司员工的人数非常多,所以要求排序算法的效率要非常高,你 ...

  3. OpenJudge/Poj 1631 Bridging signals

    1.链接地址: http://poj.org/problem?id=1631 http://bailian.openjudge.cn/practice/1631 2.题目: Bridging sign ...

  4. js监听

    IE浏览器监听: function attachEvent(string eventFlag, function eventFunc) eventFlag: 事件名称,但要加上on,如onclick. ...

  5. express cookie-session解惑

    express的中间件基于connect模块而来,所以相关文档可以直接参考 http://www.senchalabs.org/connect/ 使用cookie-session中间件过程中,比较困惑 ...

  6. Eyeshot Ultimate 学习笔记(3)

    实体角度和位置的控制 有时候导入的模型方向或者角度不太适合,就需要调节一下,这里我发现的一种方法是用到Transformation类,其实有很多类的运用都非常灵活,如果不是有官方示例,恐怕是很难发现的 ...

  7. Mysql修改设置root密码的命令及方法

    方法一:使用SQL语句命令UPDATE 需用到Mysql自带的加密函数PASSWORD(string),该函数对一个明文密码进行加密,但不能解密.专门用于mysql.user(用户权限表)中设置密码, ...

  8. PCB设计之原理图绘制笔记

    02原理图工作环境设置原理图画布由画布和边界(Border)构成.可以通过DocumentOptions设置(快捷键DO).DocumentOptions设置--------------------- ...

  9. STM32内存映射

    一.概述 STM32内存映射是STM32的架构的重要组成部分,不可或缺. 二.STM32内存映射图 1.内存映射图--摘自<CM3权威指南> 2.内存映射图--摘自<STM32F10 ...

  10. vs15

    vs15 preview5 离线安装包 vs15 preview5 离线安装包   1.介绍 vs15是微软打造的新一代IDE,全新的安装方式.官网介绍如下(https://blogs.msdn.mi ...