Поделиться через


DirectoryInfo.Exists Свойство

Определение

Получает значение, определяющее наличие каталога.

public:
 virtual property bool Exists { bool get(); };
public override bool Exists { get; }
member this.Exists : bool
Public Overrides ReadOnly Property Exists As Boolean

Значение свойства

Значение true, если каталог существует; в противном случае — значение false.

Примеры

В следующем примере показано использование Exists свойства в контексте копирования исходного каталога в целевой каталог.

using namespace System;
using namespace System::IO;

// Copy a source directory to a target directory.
void CopyDirectory( String^ SourceDirectory, String^ TargetDirectory )
{
   DirectoryInfo^ source = gcnew DirectoryInfo( SourceDirectory );
   DirectoryInfo^ target = gcnew DirectoryInfo( TargetDirectory );
   
   //Determine whether the source directory exists.
   if (  !source->Exists )
      return;

   if (  !target->Exists )
      target->Create();

   
   //Copy files.
   array<FileInfo^>^sourceFiles = source->GetFiles();
   for ( int i = 0; i < sourceFiles->Length; ++i )
      File::Copy( sourceFiles[ i ]->FullName, String::Concat( target->FullName, "\\", sourceFiles[ i ]->Name ), true );
   
   //Copy directories.
   array<DirectoryInfo^>^sourceDirectories = source->GetDirectories();
   for ( int j = 0; j < sourceDirectories->Length; ++j )
      CopyDirectory( sourceDirectories[ j ]->FullName, String::Concat( target->FullName, "\\", sourceDirectories[ j ]->Name ) );
}

int main()
{
   CopyDirectory( "D:\\Tools", "D:\\NewTools" );
}
using System;
using System.IO;

namespace DirectoryInfoCS2
{
    class Class1
    {
        // Copy a source directory to a target directory.
        static public void CopyDirectory(string SourceDirectory, string TargetDirectory)
        {
            DirectoryInfo	source = new DirectoryInfo(SourceDirectory);
            DirectoryInfo	target = new DirectoryInfo(TargetDirectory);
            
            //Determine whether the source directory exists.
            if(!source.Exists)
                return;
            if(!target.Exists)
                target.Create();
            
            //Copy files.
            FileInfo[] sourceFiles = source.GetFiles();	
            for(int i = 0; i < sourceFiles.Length; ++i)
                File.Copy(sourceFiles[i].FullName, target.FullName + "\\" + sourceFiles[i].Name,true);
            
            //Copy directories.
            DirectoryInfo[] sourceDirectories = source.GetDirectories();	
            for(int j = 0; j < sourceDirectories.Length; ++j)
                CopyDirectory(sourceDirectories[j].FullName,target.FullName +"\\" + sourceDirectories[j].Name);
        }

        static void Main(string[] args)
        {
            CopyDirectory("D:\\Tools","D:\\NewTools");
        }
    }
}
open System.IO

// Copy a source directory to a target directory.
let rec copyDirectory sourceDirectory targetDirectory =
    let source = DirectoryInfo sourceDirectory
    let target = DirectoryInfo targetDirectory
    
    //Determine whether the source directory exists.
    if source.Exists then
        if target.Exists then
            target.Create()
        
        //Copy files.
        let sourceFiles = source.GetFiles()
        for file in sourceFiles do
            File.Copy(file.FullName, target.FullName + "\\" + file.Name,true)
        
        //Copy directories.
        let sourceDirectories = source.GetDirectories()
        for dir in sourceDirectories do
            copyDirectory dir.FullName (target.FullName + "\\" + dir.Name)

copyDirectory "D:\\Tools" "D:\\NewTools"
Imports System.IO

Module Module1
    Public Sub CopyDirectory(ByVal SourceDirectory As String, ByVal TargetDirectory As String)
        Dim source As DirectoryInfo = New DirectoryInfo(SourceDirectory)
        Dim target As DirectoryInfo = New DirectoryInfo(TargetDirectory)

        'Determine whether the source directory exists.
        If (source.Exists = False) Then
            Return
        End If
        If (target.Exists = False) Then
            target.Create()
        End If

        'Copy files.
        Dim sourceFiles As FileInfo() = source.GetFiles()
        Dim i, j As Integer
        For i = 0 To sourceFiles.Length - 1
            File.Copy(sourceFiles(i).FullName, target.FullName + "\\" + sourceFiles(i).Name, True)
        Next i

        'Copy directories.
        Dim sourceDirectories As DirectoryInfo() = source.GetDirectories()
        For j = 0 To sourceDirectories.Length - 1
            CopyDirectory(sourceDirectories(j).FullName, target.FullName + "\\" + sourceDirectories(j).Name)
        Next j
        source = Nothing
        target = Nothing
    End Sub
    Sub Main()
        CopyDirectory("D:\\Tools", "D:\\NewTools")
    End Sub
End Module

Комментарии

Свойство Exists возвращает значение false , если возникает какая-либо ошибка при попытке определить, существует ли указанный файл. Это может произойти в ситуациях, в которых возникают исключения, такие как передача имени файла с недопустимыми символами или слишком много символов, сбой или отсутствие диска или если вызывающий объект не имеет разрешения на чтение файла.

Применяется к

См. также раздел