Dosya ve dizin bağlantılarına olan bağlantılardan dosya ve dizinleri ayırt etmek için bir örnek aşağıdadır.
Linkler ya dosyaları veya dizinleri kendi nitelikleri (oluşturulma tarihi, izinleri) hedefleri ayrı muhafaza etmek.
Dosya bağlantıları hedef dosya etkilemeden (örneğin, "del" kullanarak) silinebilir.
Dizin bağlantılar hedef dizini etkilemeden (örneğin, "rmdir") çıkarılabilir. "Rd/s" kullanırken dikkatli olun. Bu, dizin bağlantı hedefini kaldıracaktır.
anahtar FileAttributes
bayrak hem FileInfo
kontrol etmek ve DirectoryInfo
FileAttributes.ReparsePoint
olup.
static void Main(string[] args) {
FileInfo file_info = new FileInfo(args[0]);
DirectoryInfo directory_info = new DirectoryInfo(args[0]);
bool is_file = file_info.Exists;
bool is_directory = directory_info.Exists;
if (is_file) {
Console.WriteLine(file_info.ToString() + " is a file");
if (file_info.Attributes.HasFlag(FileAttributes.ReparsePoint))
Console.WriteLine(args[0] + " is a Windows file link");
}
else if (is_directory) {
Console.WriteLine(directory_info.ToString() + " is a directory");
if (directory_info.Attributes.HasFlag(FileAttributes.ReparsePoint))
Console.WriteLine(args[0] + " is a Windows directory link");
}
Eğer mümkünse, buraya yapıştırın, tam kodu, blong'a girebilir, yoksa derleme yapamaz mısın? – TarmoPikaro
Bu kod şu anda bir [NuGet paketi] (https://www.nuget.org/packages/SymbolicLinkSupport/) ve [GitHub'dadır] (https://github.com/michaelmelancon/symboliclinksupport) –