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 property.)

Exists(String) 是一项成本高昂的操作。 仅在应用程序内需要时才使用它。

注意

方法 Exists(String) 不支持 FormatName 前缀。

参数的 path 语法取决于队列的类型,如下表所示。

队列类型 语法
公共队列 MachineName\QueueName

Exists(String) 无法调用 来验证是否存在远程专用队列。

有关更多语法,请参阅 Path 属性。

或者,可以使用 Label 来描述队列路径。

参考 语法
Label Label:[ label ]

下表显示了此方法是否在各种工作组模式下可用。

工作组模式 可用
本地计算机
本地计算机和直接格式名称
远程计算机
远程计算机和直接格式名称

适用于

另请参阅