كيفية القيام بما يلي: نسخ الدلائل
يوضح هذا المثال كيفية استخدام فئات I/O لنسخ دليل من موقع واحد إلى آخر. في هذا المثال، يمكن للمستخدم تعيين ما إذا كان سيقوم بنسخ الدلائل الفرعية. إذا كان يتم نسخ الدلائل الفرعية، فالأسلوب في هذا المثال يقوم بنسخهم بشكل متكرر عن طريق استدعاء نفسه في كل دليل فرعي لاحق حتي لا يعد هناك أي شئ للنسخ.
مثال
Imports System
Imports System.IO
Class DirectoryCopyExample
Shared Sub Main()
DirectoryCopy(".", ".\\temp", True)
End Sub 'Main
Private Shared Sub DirectoryCopy( _
ByVal sourceDirName As String, _
ByVal destDirName As String, _
ByVal copySubDirs As Boolean)
Dim dir As DirectoryInfo = New DirectoryInfo(sourceDirName)
Dim dirs As DirectoryInfo() = dir.GetDirectories()
' If the source directory does not exist, throw an exception.
If Not dir.Exists Then
Throw New DirectoryNotFoundException( _
"Source directory does not exist or could not be found: " _
+ sourceDirName)
End If
' If the destination directory does not exist, create it.
If Not Directory.Exists(destDirName) Then
Directory.CreateDirectory(destDirName)
End If
' Get the file contents of the directory to copy.
Dim files As FileInfo() = dir.GetFiles()
For Each file In files
' Create the path to the new copy of the file.
Dim temppath As String = Path.Combine(destDirName, file.Name)
' Copy the file.
file.CopyTo(temppath, False)
Next file
' If copySubDirs is true, copy the subdirectories.
If copySubDirs Then
For Each subdir In dirs
' Create the subdirectory.
Dim temppath As String = _
Path.Combine(destDirName, subdir.Name)
' Copy the subdirectories.
DirectoryCopy(subdir.FullName, temppath, copySubDirs)
Next subdir
End If
End Sub
End Class
using System;
using System.IO;
class DirectoryCopyExample
{
static void Main()
{
DirectoryCopy(".", @".\temp", true);
}
private static void DirectoryCopy(
string sourceDirName, string destDirName, bool copySubDirs)
{
DirectoryInfo dir = new DirectoryInfo(sourceDirName);
DirectoryInfo[] dirs = dir.GetDirectories();
// If the source directory does not exist, throw an exception.
if (!dir.Exists)
{
throw new DirectoryNotFoundException(
"Source directory does not exist or could not be found: "
+ sourceDirName);
}
// If the destination directory does not exist, create it.
if (!Directory.Exists(destDirName))
{
Directory.CreateDirectory(destDirName);
}
// Get the file contents of the directory to copy.
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files)
{
// Create the path to the new copy of the file.
string temppath = Path.Combine(destDirName, file.Name);
// Copy the file.
file.CopyTo(temppath, false);
}
// If copySubDirs is true, copy the subdirectories.
if (copySubDirs)
{
foreach (DirectoryInfo subdir in dirs)
{
// Create the subdirectory.
string temppath = Path.Combine(destDirName, subdir.Name);
// Copy the subdirectories.
DirectoryCopy(subdir.FullName, temppath, copySubDirs);
}
}
}
}
راجع أيضًا:
المهام
كيفية القيام بما يلي: إنشاء سرد الدليل