0

我在非系统文件夹中创建 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();
    }
}
4

2 回答 2

1

如果您在本地运行您的应用程序,那么您的代码是正确的。它必须工作。如果您的应用程序在线运行,那么您必须在要保存 url 的文件夹上为 Internet 用户设置权限。

希望这能解决你的问题

于 2012-11-23T06:59:06.203 回答
0

据我所知,这没有正确的路径:

string nonSystemDir = "C\\Downloads";

难道不应该

string nonSystemDir = "C:\\Downloads";

或更具可读性

string nonSystemDir = @"C:\Downloads";

您也可以像这样添加 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();
    }
}
于 2012-11-23T07:00:10.723 回答