本文提供一個 ASP.NET 服務端類,利用 System.Environment.SpecialFolder 獲取系統特殊文件夾路徑,創建 .url 格式的 Internet 快捷方式文件,實現將網站鏈接發布到用戶桌面、收藏夾、鏈接欄、開始菜單等位置。注意:此代碼運行在**服務器端**,僅適用於服務器與客戶端共享文件系統的內網/特殊場景,公網環境無法直接作用於客戶端機器。
using System;
using System.IO;
using System.Web.UI;
public partial class CreateShortcut : Page
{
protected void Page_Load(object sender, EventArgs e) { }
/// <summary> 創建快捷方式到多個系統文件夾 </summary>
private void CreateShortcut(string title, string url)
{
// 收藏夾
CreateShortcutFile(title, url, Environment.GetFolderPath(Environment.SpecialFolder.Favorites));
// 桌面
CreateShortcutFile(title, url, Environment.GetFolderPath(Environment.SpecialFolder.Desktop));
// 收藏夾\鏈接欄
CreateShortcutFile(title, url, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Favorites), "Links"));
// 開始菜單
CreateShortcutFile(title, url, Environment.GetFolderPath(Environment.SpecialFolder.StartMenu));
}
/// <summary> 寫入 .url 文件 </summary>
private void CreateShortcutFile(string title, string url, string folderPath)
{
// 確保目錄存在
if (!Directory.Exists(folderPath)) Directory.CreateDirectory(folderPath);
string filePath = Path.Combine(folderPath, title + ".url");
using (StreamWriter writer = File.CreateText(filePath))
{
writer.WriteLine("[InternetShortcut]");
writer.WriteLine("URL=" + url);
}
}
// 按鈕點擊調用示例
protected void btnShortcut_Click(object sender, EventArgs e)
{
CreateShortcut("傑部優", "https://www.jb51.net");
}
}
Internet 快捷方式本質是文本文件,內容格式:
[InternetShortcut]
URL=https://www.example.com
Windows Shell 識別該格式並在資源管理器中顯示為鏈接圖標,雙擊啟動默認瀏覽器打開 URL。
| 場景 | 可行性 | 說明 |
|---|---|---|
| 內網域環境,用戶配置文件重定向到文件服務器 | ✅ 可行 | 服務器寫入的文件直接同步到用戶桌面/收藏夾 |
| 終端服務 / 遠程桌面會話主機 | ✅ 可行 | 服務器即用戶會話宿主機,寫入即時生效 |
| 公網網站,普通用戶瀏覽器訪問 | ❌ 不可行 | 服務器無法訪問客戶端本地文件系統 |