C#でのShell.Applicationで「shell:」と変数をつなげるとパスが取得できない
お世話になります。
この間の続きみたいな感じです。
Shell.ApplicationのNamespaceの引数に「"shell:"+フォルダ名」とすると、例外エラーが起きてしまうようです。
これは、こういう仕様なのか、それとも何か書き方が悪いのか、教えていただけると幸いです。
下記がサンプルコードになります。
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
public class MainClass{
public static void Main(){
string FolderName = "Download";
var instanceType = Type.GetTypeFromProgID("Shell.Application");
dynamic shell = Activator.CreateInstance(instanceType);
var folder = shell.Namespace("shell:"+FolderName);
string directory = folder.Self.Path;
Console.WriteLine(directory);
}
}
そして、エラーが下記になります。
ハンドルされていない例外: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: null 参照に対して実行時バインディングを実行することはできません
場所 CallSite.Target(Closure , CallSite , Object )
場所 System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
場所 MainClass.Main()
もし解決法等がありましたら、教えていただけると幸いです。
よろしくお願いいたします。