dotnet 測試在 UOS Linux 上使用 Process Start 開啟檔案的行為

lindexi發表於2024-09-12

本文記錄我在 UOS Linux 系統上使用 Process.Start 開啟檔案的行為

使用 UseShellExecute 開啟文字檔案

我放入了名為 Test.txt 的檔案,然後使用下面程式碼嘗試開啟檔案。實際測試可以正常開啟

using System.Diagnostics;

var filePath = "../Test.txt";

Console.WriteLine($"檔案存在 {File.Exists(filePath)}");

Process.Start(new ProcessStartInfo(filePath)
{
    UseShellExecute = true
});

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin bdc7f6d136079f726aa04b10859149c36c91a940

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin bdc7f6d136079f726aa04b10859149c36c91a940

獲取程式碼之後,進入 ChoqonerekiFojijihel 資料夾

使用 UseShellExecute 開啟資料夾

只是將傳入引數從檔案換成資料夾,可以正常

using System.Diagnostics;

var filePath = "../../Documents";

Console.WriteLine($"資料夾存在 {Directory.Exists(filePath)}");

Process.Start(new ProcessStartInfo(filePath)
{
    UseShellExecute = true
});

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 11ac184046099dd6e8e558794abf314b1649d869

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 11ac184046099dd6e8e558794abf314b1649d869

獲取程式碼之後,進入 ChoqonerekiFojijihel 資料夾

使用 UseShellExecute 開啟 URL 到瀏覽器

測試程式碼如下

using System.Diagnostics;

Process.Start(new ProcessStartInfo("http://www.baidu.com")
{
    UseShellExecute = true
});

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 77daf740bd87ff4f086a247d853bad93c6d872c1

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 77daf740bd87ff4f086a247d853bad93c6d872c1

獲取程式碼之後,進入 ChoqonerekiFojijihel 資料夾

使用 xdg-open 開啟資料夾

平替 Windows 下的使用 explorer 開啟資料夾的方法,程式碼如下

using System.Diagnostics;

var filePath = "../../Documents";

Console.WriteLine($"資料夾存在 {Directory.Exists(filePath)}");

Process.Start(new ProcessStartInfo("xdg-open", new []{ filePath })
{
    UseShellExecute = false
});

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 75b936382dc5e4eb0a06b6460df3f529b46efd86

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 75b936382dc5e4eb0a06b6460df3f529b46efd86

獲取程式碼之後,進入 ChoqonerekiFojijihel 資料夾

使用 xdg-open 開啟檔案

以下繼續使用文字檔案作為例子,程式碼如下

using System.Diagnostics;

var filePath = "../Test.txt";

Console.WriteLine($"資料夾存在 {Directory.Exists(filePath)}");

Process.Start(new ProcessStartInfo("xdg-open", new []{ filePath })
{
    UseShellExecute = false
});

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin cc11838fe0b21a6ab4d4d5142fee15c33ab5fd96

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin cc11838fe0b21a6ab4d4d5142fee15c33ab5fd96

獲取程式碼之後,進入 ChoqonerekiFojijihel 資料夾

使用 xdg-open 開啟 URL 地址

測試程式碼如下

using System.Diagnostics;

Process.Start(new ProcessStartInfo("xdg-open", new[] { "http://blog.lindexi.com" })
{
    UseShellExecute = false
});

本文以上程式碼放在githubgitee 歡迎訪問

可以透過如下方式獲取本文的原始碼,先建立一個空資料夾,接著使用命令列 cd 命令進入此空資料夾,在命令列裡面輸入以下程式碼,即可獲取到本文的程式碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 6d4a87d1734682bb1fb1e2202413c4758e42f44d

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換為 github 的源。請在命令列繼續輸入以下程式碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 6d4a87d1734682bb1fb1e2202413c4758e42f44d

獲取程式碼之後,進入 ChoqonerekiFojijihel 資料夾

更多閱讀

其他關於測試在 Linux 的行為,請參閱

  • dotnet 測試在 Linux 系統上的 Environment.GetFolderPath 行為

更多 dotnet 在 Linux 的開發部落格請參閱 部落格導航

更多關於 xdg-open 請參閱 Ubuntu Manpage: xdg-open - opens a file or URL in the user's preferred application

相關文章