次の方法で共有


MessageQueue.Exists(String) メソッド

定義

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

public:
 static bool Exists(System::String ^ path);
public static bool Exists(string path);
static member Exists : string -> bool
Public Shared Function Exists (path As String) As Boolean

パラメーター

path
String

検索するキューの場所。

戻り値

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

例外

path構文が無効です。

メッセージ キュー メソッドにアクセスするときにエラーが発生しました。

-又は-

Exists(String) メソッドがリモート プライベート キューで呼び出されている

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

次のコード例では、メッセージ キューキューが存在するかどうかを確認し、それを削除します。

#using <system.dll>
#using <system.messaging.dll>

using namespace System;
using namespace System::Messaging;
int 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 0;
}
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;
        }
    }
}
Imports System.Messaging



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

End Class

注釈

Exists(String) メソッドは、メッセージ キュー キューが指定されたパスに存在するかどうかを決定します。 指定した形式名のキューが存在するかどうかを判断するメソッドは存在しません。 書式名の構文とその他のパス構文の形式の詳細については、 Path プロパティを参照してください)。

Exists(String) はコストの高い操作です。 アプリケーション内で必要な場合にのみ使用します。

Exists(String) メソッドは、FormatName プレフィックスをサポートしていません。

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

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

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

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

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

リファレンス 構文
ラベル Label:[ label ]

次の表は、このメソッドがさまざまなワークグループ モードで使用できるかどうかを示しています。

ワークグループ モード 在庫有り
ローカル コンピューター はい
ローカル コンピューターと直接の形式名 いいえ
リモート コンピューター いいえ
リモート コンピューターと直接の形式名 いいえ

適用対象

こちらもご覧ください