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 を保存するフォルダーにインターネット ユーザーのアクセス許可を設定する必要があります。

これで問題が解決することを願っています

于 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 に答える