FileInfo コンストラクタ
ファイル パスのラッパーとして機能する、 FileInfo クラスの新しいインスタンスを初期化します。
Public Sub New( _
ByVal fileName As String _)
[C#]
public FileInfo(
stringfileName);
[C++]
public: FileInfo(
String* fileName);
[JScript]
public function FileInfo(
fileName : String);
パラメータ
- fileName
新しいファイルの完全限定名または相対ファイル名。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | fileName が null 参照 (Visual Basic では Nothing) です。 |
SecurityException | 呼び出し元に、必要なアクセス許可がありません。 |
ArgumentException | ファイル名が空か、空白文字だけを含んでいるか、無効な文字を含んでいます。 |
UnauthorizedAccessException | fileName へのアクセスが拒否されました。 |
PathTooLongException | 指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。 |
NotSupportedException | fileName の文字列の中に、コロン (:) が含まれています。 |
解説
完全限定ファイル名または相対ファイル名のいずれかを指定できますが、セキュリティ チェックでは完全限定名が採用されます。
このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。
実行するタスク | 参考例があるトピック |
---|---|
テキスト ファイルを作成する。 | ファイルへのテキストの書き込み |
テキスト ファイルに書き込む。 | ファイルへのテキストの書き込み |
テキスト ファイルから読み取る。 | ファイルからのテキストの読み取り |
テキストをファイルに追加する。 | ログ ファイルのオープンと追加 |
ファイルの名前を変更、またはファイルを移動する。 | File.Move |
ファイルを削除する。 | File.Delete |
ファイルをコピーする。 | File.Copy |
ファイルのサイズを取得する。 | FileInfo.Length |
ファイルの属性を取得する。 | File.GetAttributes |
ファイルの属性を設定する。 | File.SetAttributes |
ファイルが存在するかどうかを判別する。 | File.Exists |
バイナリ ファイルから読み取る。 | 新しく作成したデータ ファイルの読み取りと書き込み |
バイナリ ファイルに書き込む。 | 新しく作成したデータ ファイルの読み取りと書き込み |
ファイルの拡張子を取得する。 | Path.GetExtension |
ファイルの絶対パスを取得する。 | Path.GetFullPath |
パスからファイル名と拡張子を取得する。 | Path.GetFileName |
ファイルの拡張子を変更する。 | Path.ChangeExtension |
使用例
このコンストラクタを使用して 2 つのファイルを作成し、それらに対して書き込み、読み取り、コピー、および削除を実行する例を次に示します。
Imports System
Imports System.IO
Class Test
Public Shared Sub Main()
Dim path As String = "c:\temp\MyTest.txt"
Dim fi1 As FileInfo = New FileInfo(path)
If fi1.Exists = False Then
'Create a file to write to.
Dim sw As StreamWriter = fi1.CreateText()
sw.WriteLine("Hello")
sw.WriteLine("And")
sw.WriteLine("Welcome")
sw.Flush()
sw.Close()
End If
'Open the file to read from.
Dim sr As StreamReader = fi1.OpenText()
Do While sr.Peek() >= 0
Console.WriteLine(sr.ReadLine())
Loop
Try
Dim path2 As String = path + "temp"
Dim fi2 As FileInfo = New 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 e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
[C#]
using System;
using System.IO;
class Test
{
public static void Main()
{
string path = @"c:\temp\MyTest.txt";
FileInfo fi1 = new FileInfo(path);
if (!fi1.Exists)
{
//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())
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Console.WriteLine(s);
}
}
try
{
string path2 = path + "temp";
FileInfo fi2 = new 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.ToString());
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
int main() {
String* path = S"c:\\temp\\MyTest.txt";
FileInfo* fi1 = new FileInfo(path);
if (!fi1->Exists) {
//Create a file to write to.
StreamWriter* sw = fi1->CreateText();
try {
sw->WriteLine(S"Hello");
sw->WriteLine(S"And");
sw->WriteLine(S"Welcome");
} __finally {
if (sw) __try_cast<IDisposable*>(sw)->Dispose();
}
}
//Open the file to read from.
StreamReader* sr = fi1->OpenText();
try {
String* s = S"";
while (s = sr->ReadLine()) {
Console::WriteLine(s);
}
} __finally {
if (sr) __try_cast<IDisposable*>(sr)->Dispose();
}
try {
String* path2 = String::Concat(path, S"temp");
FileInfo* fi2 = new FileInfo(path2);
//Ensure that the target does not exist.
fi2->Delete();
//Copy the file.
fi1->CopyTo(path2);
Console::WriteLine(S"{0} was copied to {1}.", path, path2);
//Delete the newly created file.
fi2->Delete();
Console::WriteLine(S"{0} was successfully deleted.", path2);
} catch (Exception* e) {
Console::WriteLine(S"The process failed: {0}", e);
}
}
既存ファイルを開くか、またはファイルを作成し、ファイルにテキストを追加し、結果を表示する例を次に示します。
Imports System
Imports System.IO
Public Class FileInfoMainTest
Public Shared Sub Main()
' Open an existing file, or create a new one.
Dim fi As New FileInfo("temp.txt")
' Create a writer, ready to add entries to the file.
Dim sw As StreamWriter = fi.AppendText()
sw.WriteLine("This is a new entry to add to the file")
sw.WriteLine("This is yet another line to add...")
sw.Flush()
sw.Close()
Dim sr As New StreamReader(fi.OpenRead())
' Get the information out of the file and display it.
While sr.Peek() <> -1
Console.WriteLine(sr.ReadLine())
End While
End Sub 'Main
End Class 'FileInfoMainTest
[C#]
using System;
using System.IO;
public class FileInfoMainTest
{
public static void Main()
{
// Open an existing file, or create a new one.
FileInfo fi = new FileInfo("temp.txt");
// Create a writer, ready to add entries to the file.
StreamWriter sw = fi.AppendText();
sw.WriteLine("This is a new entry to add to the file");
sw.WriteLine("This is yet another line to add...");
sw.Flush();
sw.Close();
// Get the information out of the file and display it.
StreamReader sr = new StreamReader( fi.OpenRead() );
while (sr.Peek() != -1)
Console.WriteLine( sr.ReadLine() );
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
int main() {
// Open an existing file, or create a new one.
FileInfo* fi = new FileInfo(S"temp.txt");
// Create a writer, ready to add entries to the file.
StreamWriter* sw = fi->AppendText();
sw->WriteLine(S"This is a new entry to add to the file");
sw->WriteLine(S"This is yet another line to add...");
sw->Flush();
sw->Close();
// Get the information out of the file and display it.
StreamReader* sr = new StreamReader(fi->OpenRead());
while (sr->Peek() != -1)
Console::WriteLine(sr->ReadLine());
}
[JScript]
import System;
import System.IO;
public class FileInfoMainTest {
public static function Main() : void {
// Open an existing file, or create a new one.
var fi : FileInfo = new FileInfo("temp.txt");
// Create a writer, ready to add entries to the file.
var sw : StreamWriter = fi.AppendText();
sw.WriteLine("This is a new entry to add to the file");
sw.WriteLine("This is yet another line to add...");
sw.Flush();
sw.Close();
// Get the information out of the file and display it.
var sr : StreamReader = new StreamReader( fi.OpenRead() );
while (sr.Peek() != -1)
Console.WriteLine( sr.ReadLine() );
}
}
FileInfoMainTest.Main();
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
.NET Framework セキュリティ:
- FileIOPermission (ファイルの読み取り用) FileIOPermissionAccess.Read (関連する列挙体)
参照
FileInfo クラス | FileInfo メンバ | System.IO 名前空間 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み