2012-11-23 36 views
0

我在創建非系統文件夾中的url鏈接(快捷方式)時遇到問題。在桌面上正確創建鏈接沒有任何問題,但是如果我將路徑更改爲非系統文件夾,則該文件夾保持空白,並且也沒有錯誤消息。對允許的路徑有限制嗎?爲什麼沒有錯誤信息?代碼如下:如何讓Streamwriter在C#中的非系統文件夾中創建url鏈接

private void urlShortcutToFolder(string linkName, string linkUrl) 
{ 
    //string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
    //using (StreamWriter writer = new StreamWriter(deskDir + "\\" + linkName + ".url")) 
    string nonSystemDir = "C\\Downloads"; 
    using (StreamWriter writer = new StreamWriter(nonSystemDir + "\\" + linkName + ".url")) 
    { 
     writer.WriteLine("[InternetShortcut]"); 
     writer.WriteLine("URL=" + linkUrl); 
     writer.Flush(); 
    } 
} 

回答

0

對於據我知道這不正確的路徑:

string nonSystemDir = "C\\Downloads"; 

它不應該是

string nonSystemDir = "C:\\Downloads"; 

或更具可讀性

string nonSystemDir = @"C:\Downloads"; 

你湊ld也添加System.IO.Directory.Exists像這樣

private void urlShortcutToFolder(string linkName, string linkUrl) 
{ 
    //string deskDir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); 
    //using (StreamWriter writer = new StreamWriter(deskDir + "\\" + linkName + ".url")) 
    string nonSystemDir = @"C:\Downloads"; 
    if(!System.IO.Directory.Exists(nonSystemDir)) 
    { 
     throw New Exception("Path " + nonSystemDir + " is not valid"); 
    } 
    using (StreamWriter writer = new StreamWriter(nonSystemDir + "\\" + linkName + ".url")) 
    { 
     writer.WriteLine("[InternetShortcut]"); 
     writer.WriteLine("URL=" + linkUrl); 
     writer.Flush(); 
    } 
} 
+0

謝謝邁克。我也是自己想出來的。愚蠢的錯誤! – user1791470

+0

歡迎您!每個人都現在和他們做他們。休息一分鐘或兩分鐘以後,我經常幫助我! –

1

如果您在本地運行您的應用程序,那麼您的代碼是正確的。它必須工作。 如果您的應用程序正在運行oline,那麼您必須爲要保存網址的文件夾設置Internet用戶權限。

希望這將解決您的問題

+0

謝謝。它現在在糾正語法後在本地機器上工作。我需要爲互聯網用戶嘗試。當時會更新這篇文章。 – user1791470

+0

@ user1791470很高興你已經解決了你的問題。 –

相關問題