

お世話になります。  
この間の続きみたいな感じです。

Shell.ApplicationのNamespaceの引数に「"shell:"+フォルダ名」とすると、例外エラーが起きてしまうようです。  
これは、こういう仕様なのか、それとも何か書き方が悪いのか、教えていただけると幸いです。  
下記がサンプルコードになります。

[code]

    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);
    }
    }
    
[/code]

そして、エラーが下記になります。

ハンドルされていない例外: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: null
参照に対して実行時バインディングを実行することはできません  
場所 CallSite.Target(Closure , CallSite , Object )  
場所 System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0
arg0)  
場所 MainClass.Main()

もし解決法等がありましたら、教えていただけると幸いです。  
よろしくお願いいたします。


CC BY-SA 4.0
2018-06-24T15:20:29.080
45034
2018-06-24T15:20:29.080
29034
question
c#
C#でのShell.Applicationで「shell:」と変数をつなげるとパスが取得できない