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
, если возникает какая-либо ошибка при попытке определить, существует ли указанный файл. Это может произойти в ситуациях, в которых возникают исключения, такие как передача имени файла с недопустимыми символами или слишком много символов, сбой или отсутствие диска или если вызывающий объект не имеет разрешения на чтение файла.