次の方法で共有


MessageQueue.Exists メソッド

指定したパスにメッセージ キューのキューが存在するかどうかを判断します。

Public Shared Function Exists( _
   ByVal path As String _) As Boolean
[C#]
public static bool Exists(stringpath);
[C++]
public: static bool Exists(String* path);
[JScript]
public static function Exists(
   path : String) : Boolean;

パラメータ

  • path
    検索するキューの場所。

戻り値

指定したパスにキューが存在する場合は true 。それ以外の場合は false

例外

例外の種類 条件
ArgumentException path 構文が無効です。
MessageQueueException メッセージ キューの API にアクセスしたときにエラーが発生しました。

または

Exists メソッドが、リモート プライベート キューに対して呼び出されています。

InvalidOperationException キューの存在を確認するときに、アプリケーションが書式名構文を使用しました。

解説

Exists メソッドは、指定したパスにメッセージ キューのキューが存在するかどうかを判断します。指定した書式名のキューが存在するかどうかを判断するメソッドはありません。書式名構文およびその他のパス構文の書式の詳細については、 Path プロパティのトピックを参照してください。

Exists は、負荷が高い操作です。アプリケーションで必要な場合にだけ使用してください。

path パラメータの構文は、キューの種類によって異なります。

キューの種類 構文
パブリック キュー MachineName\ QueueName

メモ   リモート プライベート キューの存在を確認するために、 Exists を呼び出すことができませんでした。

構文の詳細については、 Path プロパティのトピックを参照してください。

Label を使用してキューのパスを記述することもできます。

参照 構文
ラベル Label:[ label ]

このメソッドが各種のワークグループ モードで使用できるかどうかを次の表に示します。

ワークグループ モード 使用可否
ローカル コンピュータ はい
ローカル コンピュータ + 直接書式名 いいえ
リモート コンピュータ いいえ
リモート コンピュータ + 直接書式名 いいえ

使用例

[Visual Basic, C#, C++] メッセージ キューのキューが存在するかどうかを確認してから、それを削除する例を次に示します。

 
Imports System
Imports System.Messaging

Namespace MyProject

    '/ <summary>
    '/ Provides a container class for the example.
    '/ </summary>
    Public Class MyNewQueue


        '**************************************************
        ' Provides an entry point into the application.
        '         
        ' This example verifies existence and attempts to 
        ' delete a queue.
        '**************************************************

        Public Shared Sub Main()

            ' Determine whether the queue exists.
            If MessageQueue.Exists(".\myQueue") Then

                Try

                    ' Delete the queue.
                    MessageQueue.Delete(".\myQueue")

                Catch e As MessageQueueException

                    If e.MessageQueueErrorCode = _
                        MessageQueueErrorCode.AccessDenied Then

                        Console.WriteLine("Access is denied. " _
                            + "Queue might be a system queue.")
                    End If

                    ' Handle other sources of exceptions as necessary.

                End Try

            End If


            Return

        End Sub 'Main

    End Class 'MyNewQueue 
End Namespace 'MyProject

[C#] 
using System;
using System.Messaging;

namespace MyProject
{
    /// <summary>
    /// Provides a container class for the example.
    /// </summary>
    public class MyNewQueue
    {

        //**************************************************
        // Provides an entry point into the application.
        //         
        // This example verifies existence and attempts to 
        // delete a queue.
        //**************************************************

        public static void Main()
        {

            // Determine whether the queue exists.
            if (MessageQueue.Exists(".\\myQueue"))
            {
                try
                {
                    // Delete the queue.
                    MessageQueue.Delete(".\\myQueue");
                }
                catch(MessageQueueException e)
                {
                    if(e.MessageQueueErrorCode == 
                        MessageQueueErrorCode.AccessDenied)
                    {
                        Console.WriteLine("Access is denied. " + 
                            "Queue might be a system queue.");
                    }

                    // Handle other sources of MessageQueueException.
                }

            }
        
            return;
        }

    }
}

[C++] 
#using <mscorlib.dll>
#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;

int main() 
{
    // Determine whether the queue exists.
    if (MessageQueue::Exists(S".\\myQueue")) 
    {
        try 
        {
            // Delete the queue.
            MessageQueue::Delete(S".\\myQueue");
        }
        catch (MessageQueueException* e) 
        {
            if (e->MessageQueueErrorCode == 
                MessageQueueErrorCode::AccessDenied) 
            {
                Console::WriteLine(S"Access is denied. Queue might be a system queue.");
            }
            // Handle other sources of MessageQueueException.
        }

    }

    return 0;
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

MessageQueue クラス | MessageQueue メンバ | System.Messaging 名前空間 | Create | Delete | Path