FileInfo Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Udostępnia właściwości i metody wystąpień do tworzenia, kopiowania, usuwania, przenoszenia i otwierania plików oraz ułatwia tworzenie obiektów FileStream. Tej klasy nie można dziedziczyć.
public ref class FileInfo sealed : System::IO::FileSystemInfo
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
public sealed class FileInfo : System.IO.FileSystemInfo
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileInfo : System.IO.FileSystemInfo
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
type FileInfo = class
inherit FileSystemInfo
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileInfo = class
inherit FileSystemInfo
Public NotInheritable Class FileInfo
Inherits FileSystemInfo
- Dziedziczenie
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie pokazano niektóre główne elementy członkowskie klasy FileInfo
.
Po pierwszym pobraniu właściwości FileInfo wywołuje metodę Refresh i buforuje informacje o pliku. W kolejnych wywołaniach należy wywołać Refresh, aby uzyskać najnowszą kopię informacji.
using namespace System;
using namespace System::IO;
int main()
{
String^ path = Path::GetTempFileName();
FileInfo^ fi1 = gcnew FileInfo( path );
//Create a file to write to.
StreamWriter^ sw = fi1->CreateText();
try
{
sw->WriteLine( "Hello" );
sw->WriteLine( "And" );
sw->WriteLine( "Welcome" );
}
finally
{
if ( sw )
delete (IDisposable^)sw;
}
//Open the file to read from.
StreamReader^ sr = fi1->OpenText();
try
{
String^ s = "";
while ( s = sr->ReadLine() )
{
Console::WriteLine( s );
}
}
finally
{
if ( sr )
delete (IDisposable^)sr;
}
try
{
String^ path2 = Path::GetTempFileName();
FileInfo^ fi2 = gcnew FileInfo( path2 );
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo( path2 );
Console::WriteLine( "{0} was copied to {1}.", path, path2 );
//Delete the newly created file.
fi2->Delete();
Console::WriteLine( "{0} was successfully deleted.", path2 );
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = Path.GetTempFileName();
var fi1 = new FileInfo(path);
// Create a file to write to.
using (StreamWriter sw = fi1.CreateText())
{
sw.WriteLine("Hello");
sw.WriteLine("And");
sw.WriteLine("Welcome");
}
// Open the file to read from.
using (StreamReader sr = fi1.OpenText())
{
var s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
try
{
string path2 = Path.GetTempFileName();
var fi2 = new FileInfo(path2);
// Ensure that the target does not exist.
fi2.Delete();
// Copy the file.
fi1.CopyTo(path2);
Console.WriteLine($"{path} was copied to {path2}.");
// Delete the newly created file.
fi2.Delete();
Console.WriteLine($"{path2} was successfully deleted.");
}
catch (Exception e)
{
Console.WriteLine($"The process failed: {e.ToString()}");
}
}
}
Imports System.IO
Public Class Test
Public Shared Sub Main()
Dim path1 As String = Path.GetTempFileName()
Dim path2 As String = Path.GetTempFileName()
Dim fi As New FileInfo(path1)
' Create a file to write to.
Using sw As StreamWriter = fi.CreateText()
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
End Using
Try
' Open the file to read from.
Using sr As StreamReader = fi.OpenText()
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
End Using
Dim fi2 As New FileInfo(path2)
' Ensure that the target does not exist.
fi2.Delete()
' Copy the file.
fi.CopyTo(path2)
Console.WriteLine($"{path1} was copied to {path2}.")
' Delete the newly created file.
fi2.Delete()
Console.WriteLine($"{path2} was successfully deleted.")
Catch e As Exception
Console.WriteLine($"The process failed: {e.ToString()}.")
End Try
End Sub
End Class
W tym przykładzie są generowane dane wyjściowe podobne do poniższych.
Hello
And
Welcome
C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.
Uwagi
Użyj klasy FileInfo dla typowych operacji, takich jak kopiowanie, przenoszenie, zmienianie nazw, tworzenie, otwieranie, usuwanie i dołączanie do plików.
Jeśli wykonujesz wiele operacji na tym samym pliku, bardziej wydajne może być użycie FileInfo metod wystąpień zamiast odpowiednich metod statycznych klasy File, ponieważ sprawdzanie zabezpieczeń nie zawsze będzie konieczne.
Wiele metod FileInfo zwraca inne typy we/wy podczas tworzenia lub otwierania plików. Za pomocą tych innych typów można dalej manipulować plikiem. Aby uzyskać więcej informacji, zobacz określone elementy członkowskie FileInfo, takie jak Open, OpenRead, OpenText, CreateTextlub Create.
Domyślnie pełny dostęp do odczytu/zapisu do nowych plików jest przyznawany wszystkim użytkownikom.
W poniższej tabeli opisano wyliczenia używane do dostosowywania zachowania różnych metod FileInfo.
Wyliczenie | Opis |
---|---|
FileAccess | Określa dostęp do odczytu i zapisu do pliku. |
FileShare | Określa poziom dostępu dozwolony dla pliku, który jest już używany. |
FileMode | Określa, czy zawartość istniejącego pliku jest zachowywana lub zastępowana oraz czy żądania utworzenia istniejącego pliku powodują wyjątek. |
Nuta
W elementach członkowskich, które akceptują ścieżkę jako ciąg wejściowy, ta ścieżka musi być poprawnie sformułowana lub zgłaszany jest wyjątek. Jeśli na przykład ścieżka jest w pełni kwalifikowana, ale zaczyna się od spacji, ścieżka nie jest przycinana w metodach klasy. W związku z tym ścieżka jest źle sformułowana i zgłaszany jest wyjątek. Podobnie ścieżka lub kombinacja ścieżek nie może być w pełni kwalifikowana dwa razy. Na przykład "c:\temp c:\windows" również zgłasza wyjątek w większości przypadków. Upewnij się, że ścieżki są prawidłowo sformułowane podczas używania metod, które akceptują ciąg ścieżki.
W elementach członkowskich, które akceptują ścieżkę, ścieżka może odwoływać się do pliku lub tylko katalogu. Określona ścieżka może również odwoływać się do ścieżki względnej lub ścieżki uniwersalnej konwencji nazewnictwa (UNC) dla serwera i nazwy udziału. Na przykład wszystkie następujące ścieżki są dopuszczalne:
"c:\\MyDir\\MyFile.txt" w języku C# lub "c:\MyDir\MyFile.txt" w Visual Basic.
"c:\MyDir" w języku C#lub "c:\MyDir" w Visual Basic.
"MyDir\\MySubdir" w języku C# lub "MyDir\MySubDir" w Visual Basic.
"\\\MyServer\\MyShare" w języku C#lub "\MyServer\MyShare" w Visual Basic.
Klasa FileInfo udostępnia następujące właściwości, które umożliwiają pobieranie informacji o pliku. Aby zapoznać się z przykładem używania każdej właściwości, zobacz strony właściwości.
Właściwość Directory pobiera obiekt reprezentujący katalog nadrzędny pliku.
Właściwość DirectoryName pobiera pełną ścieżkę katalogu nadrzędnego pliku.
Właściwość Exists sprawdza obecność pliku przed jego uruchomieniem.
Właściwość IsReadOnly pobiera lub ustawia wartość określającą, czy można zmodyfikować plik.
Length pobiera rozmiar pliku.
Name pobiera nazwę pliku.
Konstruktory
FileInfo(String) |
Inicjuje nowe wystąpienie klasy FileInfo, która działa jako otoka dla ścieżki pliku. |
Pola
FullPath |
Reprezentuje w pełni kwalifikowaną ścieżkę katalogu lub pliku. (Odziedziczone po FileSystemInfo) |
OriginalPath |
Ścieżka pierwotnie określona przez użytkownika, niezależnie od tego, czy jest względna, czy bezwzględna. (Odziedziczone po FileSystemInfo) |
Właściwości
Attributes |
Pobiera lub ustawia atrybuty bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
CreationTime |
Pobiera lub ustawia czas tworzenia bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
CreationTimeUtc |
Pobiera lub ustawia czas tworzenia w uniwersalnym czasie koordynowanym (UTC) bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
Directory |
Pobiera wystąpienie katalogu nadrzędnego. |
DirectoryName |
Pobiera ciąg reprezentujący pełną ścieżkę katalogu. |
Exists |
Pobiera wartość wskazującą, czy plik istnieje. |
Extension |
Pobiera część rozszerzenia nazwy pliku, w tym wiodącą kropkę |
FullName |
Pobiera pełną ścieżkę katalogu lub pliku. (Odziedziczone po FileSystemInfo) |
IsReadOnly |
Pobiera lub ustawia wartość, która określa, czy bieżący plik jest tylko do odczytu. |
LastAccessTime |
Pobiera lub ustawia czas ostatniego uzyskania dostępu do bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
LastAccessTimeUtc |
Pobiera lub ustawia czas w uniwersalnym czasie koordynowanym (UTC), do którego ostatnio uzyskiwano dostęp do bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
LastWriteTime |
Pobiera lub ustawia czas ostatniego zapisania bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
LastWriteTimeUtc |
Pobiera lub ustawia czas, w skoordynowanym uniwersalnym czasie (UTC), kiedy bieżący plik lub katalog został ostatnio zapisany. (Odziedziczone po FileSystemInfo) |
Length |
Pobiera rozmiar bieżącego pliku w bajtach. |
LinkTarget |
Pobiera ścieżkę docelową łącza znajdującego się w FullNamelub |
Name |
Pobiera nazwę pliku. |
UnixFileMode |
Pobiera lub ustawia tryb plików systemu Unix dla bieżącego pliku lub katalogu. (Odziedziczone po FileSystemInfo) |
Metody
AppendText() |
Tworzy StreamWriter dołączający tekst do pliku reprezentowanego przez to wystąpienie FileInfo. |
CopyTo(String) |
Kopiuje istniejący plik do nowego pliku, co uniemożliwi zastąpienie istniejącego pliku. |
CopyTo(String, Boolean) |
Kopiuje istniejący plik do nowego pliku, co umożliwia zastąpienie istniejącego pliku. |
Create() |
Tworzy plik. |
CreateAsSymbolicLink(String) |
Tworzy link symboliczny znajdujący się w FullName wskazujący określony |
CreateObjRef(Type) |
Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym. (Odziedziczone po MarshalByRefObject) |
CreateText() |
Tworzy StreamWriter, który zapisuje nowy plik tekstowy. |
Decrypt() |
Odszyfrowuje plik zaszyfrowany przez bieżące konto przy użyciu metody Encrypt(). |
Delete() |
Trwale usuwa plik. |
Encrypt() |
Szyfruje plik tak, aby tylko konto używane do szyfrowania pliku mógł go odszyfrować. |
Equals(Object) |
Określa, czy określony obiekt jest równy bieżącemu obiektowi. (Odziedziczone po Object) |
GetAccessControl() |
Pobiera obiekt FileSecurity, który hermetyzuje wpisy listy kontroli dostępu (ACL) dla pliku opisanego przez bieżący obiekt FileInfo. |
GetAccessControl(AccessControlSections) |
Pobiera obiekt FileSecurity, który hermetyzuje określony typ wpisów listy kontroli dostępu (ACL) dla pliku opisanego przez bieżący obiekt FileInfo. |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetLifetimeService() |
Przestarzałe.
Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Ustawia obiekt SerializationInfo z nazwą pliku i dodatkowymi informacjami o wyjątku. (Odziedziczone po FileSystemInfo) |
GetType() |
Pobiera Type bieżącego wystąpienia. (Odziedziczone po Object) |
InitializeLifetimeService() |
Przestarzałe.
Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia. (Odziedziczone po MarshalByRefObject) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Object. (Odziedziczone po Object) |
MemberwiseClone(Boolean) |
Tworzy płytkią kopię bieżącego obiektu MarshalByRefObject. (Odziedziczone po MarshalByRefObject) |
MoveTo(String) |
Przenosi określony plik do nowej lokalizacji, podając opcję określenia nowej nazwy pliku. |
MoveTo(String, Boolean) |
Przenosi określony plik do nowej lokalizacji, udostępniając opcje określania nowej nazwy pliku i zastępowania pliku docelowego, jeśli już istnieje. |
Open(FileMode) |
Otwiera plik w określonym trybie. |
Open(FileMode, FileAccess) |
Otwiera plik w określonym trybie z dostępem do odczytu, zapisu lub odczytu/zapisu. |
Open(FileMode, FileAccess, FileShare) |
Otwiera plik w określonym trybie z dostępem do odczytu, zapisu lub odczytu/zapisu oraz określoną opcją udostępniania. |
Open(FileStreamOptions) |
Inicjuje nowe wystąpienie klasy FileStream z określonym trybem tworzenia, uprawnieniami do odczytu/zapisu i udostępniania, dostęp do innych strumieni plików może mieć ten sam plik, rozmiar buforu, dodatkowe opcje pliku i rozmiar alokacji. |
OpenRead() |
Tworzy FileStreamtylko do odczytu. |
OpenText() |
Tworzy StreamReader z kodowaniem UTF8 odczytanym z istniejącego pliku tekstowego. |
OpenWrite() |
Tworzy FileStreamtylko do zapisu. |
Refresh() |
Odświeża stan obiektu. (Odziedziczone po FileSystemInfo) |
Replace(String, String) |
Zastępuje zawartość określonego pliku plikiem opisanym przez bieżący obiekt FileInfo, usuwając oryginalny plik i tworząc kopię zapasową zastąpionego pliku. |
Replace(String, String, Boolean) |
Zastępuje zawartość określonego pliku plikiem opisanym przez bieżący obiekt FileInfo, usuwając oryginalny plik i tworząc kopię zapasową zastąpionego pliku. Określa również, czy ignorować błędy scalania. |
ResolveLinkTarget(Boolean) |
Pobiera element docelowy określonego linku. (Odziedziczone po FileSystemInfo) |
SetAccessControl(FileSecurity) |
Stosuje wpisy listy kontroli dostępu (ACL) opisane przez obiekt FileSecurity do pliku opisanego przez bieżący obiekt FileInfo. |
ToString() |
Zwraca oryginalną ścieżkę przekazaną do konstruktora FileInfo. Użyj właściwości FullName lub Name dla pełnej ścieżki lub nazwy pliku. |
ToString() |
Zwraca oryginalną ścieżkę. Użyj właściwości FullName lub Name dla pełnej ścieżki lub nazwy pliku/katalogu. (Odziedziczone po FileSystemInfo) |
Metody rozszerzania
Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity) |
Tworzy nowy strumień plików, upewniając się, że jest tworzony z określonymi właściwościami i ustawieniami zabezpieczeń. |
GetAccessControl(FileInfo) |
Zwraca informacje o zabezpieczeniach pliku. |
GetAccessControl(FileInfo, AccessControlSections) |
Zwraca informacje o zabezpieczeniach pliku. |
SetAccessControl(FileInfo, FileSecurity) |
Zmienia atrybuty zabezpieczeń istniejącego pliku. |