0

私の顧客の 1 人が私の ActiveX コントロールに問題を抱えています。ActiveX は、Excel ファイルをダウンロードし、それをマイ ドキュメントのフォルダに保存してから、Excel を実行してファイルを開くことになっています。

ファイルをダウンロードして開くためのコード スニペットを次に示します。

    private string Checkout(string strFileUrl, string strPhysicalDir, string strPhysicalName)
    {            
        string strMyDocumentFolder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        string strCiroDocFolder = String.Format(@"{0}\CiroDoc", strMyDocumentFolder);
        string strCheckoutFolder = String.Format(@"{0}\{1}", strCiroDocFolder, strPhysicalDir);
        string strFilePath = String.Format(@"{0}\{1}", strCheckoutFolder, strPhysicalName);

        try
        {
            if (!Directory.Exists(strCiroDocFolder))
                Directory.CreateDirectory(strCiroDocFolder);

            if (!Directory.Exists(strCheckoutFolder))
                Directory.CreateDirectory(strCheckoutFolder);

            if (File.Exists(strFilePath))
                File.Delete(strFilePath);

            WebClient myWebClient = new WebClient();
            myWebClient.DownloadFile(strFileUrl, strFilePath);               
        }
        catch (Exception e)
        {
            return e.Message;
        }

        return Run(strFilePath);
    }

    private string Run(string strFilePath)
    {
        if (!File.Exists(strFilePath))
            return "filenotfound";

        if (IsExecutable(strFilePath))
            return "isexecutable";

        try
        {
            System.Diagnostics.Process.Start(strFilePath);
        }
        catch (Exception e)
        {
            //This get returned
            return String.Format("{0} ({1})", e.Message, strFilePath);
        }

        return "success";     
    }

Run メソッドは、「コマンドがプログラムに送信されたときにエラーが発生しました」という例外を返します。

マイ ドキュメント フォルダを確認すると、ファイルがありません。そこにないので、Run メソッドが停止して "filenotfound" を返すことを期待します。

これは私を混乱させます。なぜFile.Exists返品するのtrueですか?Windows ファイルの仮想化が開始され、ファイルが VirtualStore フォルダーに保存されますか? もしそうなら、どうすればその行動を止めることができますか?または、この動作を引き起こすのは、顧客のマシンの他の何かでしょうか?

自分のマシンではまだこの問題を再現できていません。あなたがどのように私が感謝するか知っていれば.

顧客のコンピューターのセットアップ

  • OS: Windows7
  • ブラウザ:IE10
  • ウイルス対策: マカフィー

関連する情報が不足している場合は、取得しようとします。

4

1 に答える 1