次の方法で共有


File.Copy メソッド (String, String, Boolean)

既存のファイルを新しいファイルにコピーします。同じ名前のファイルの上書きが許可されます。

Overloads Public Shared Sub Copy( _
   ByVal sourceFileName As String, _   ByVal destFileName As String, _   ByVal overwrite As Boolean _)
[C#]
public static void Copy(stringsourceFileName,stringdestFileName,booloverwrite);
[C++]
public: static void Copy(String* sourceFileName,String* destFileName,booloverwrite);
[JScript]
public static function Copy(
   sourceFileName : String,destFileName : String,overwrite : Boolean);

パラメータ

  • sourceFileName
    コピーするファイル。
  • destFileName
    コピー先ファイルの名前。このパラメータには、ディレクトリは指定できません。
  • overwrite
    コピー先ファイルが上書きできる場合は true 。それ以外の場合は false

例外

例外の種類 条件
UnauthorizedAccessException 呼び出し元に、必要なアクセス許可がありません。
ArgumentException sourceFileName または destFileName が、長さが 0 の文字列であるか、空白しか含んでいないか、 InvalidPathChars で定義されている無効な文字を 1 つ以上含んでいます。

または

sourceFileName または destFileName はディレクトリを指定します。

ArgumentNullException sourceFileName または destFileName が null 参照 (Visual Basic では Nothing) です。
PathTooLongException 指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。たとえば、Windows ベースのプラットフォームの場合、パスの長さは 248 文字未満、ファイル名の長さは 260 文字未満である必要があります。
DirectoryNotFoundException 割り当てられていないドライブであるなど、 sourceFileName または destFileName で指定されたパスが無効です。
FileNotFoundException sourceFileName は見つかりませんでした。
IOException destFileName は読み取り専用か、または destFileName が存在し、 overwritefalse です。

または

I/O エラーが発生しました。

NotSupportedException sourceFileName または destFileName の形式が無効です。

解説

sourceFileName 引数および destFileName 引数は、相対パス情報または絶対パス情報を指定することを許可されています。相対パス情報は、現在の作業ディレクトリに対して相対的に解釈されます。

このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。

実行するタスク 参考例があるトピック
テキスト ファイルを作成する。 ファイルへのテキストの書き込み
テキスト ファイルに書き込む。 ファイルへのテキストの書き込み
テキスト ファイルから読み取る。 ファイルからのテキストの読み取り
テキストをファイルに追加する。 ログ ファイルのオープンと追加

File.AppendText

FileInfo.AppendText

ファイルの名前を変更、またはファイルを移動する。 File.Move

FileInfo.MoveTo

ファイルを削除する。 File.Delete

FileInfo.Delete

バイナリ ファイルから読み取る。 新しく作成したデータ ファイルの読み取りと書き込み
バイナリ ファイルに書き込む。 新しく作成したデータ ファイルの読み取りと書き込み
ディレクトリを移動する。 Directory.Move

DirectoryInfo.MoveTo

サブディレクトリを作成する。 CreateSubdirectory
ディレクトリをコピーする。 Directory

使用例

[Visual Basic, C#, C++] 同じ名前のコピー先ファイルの上書きを許可して、ファイルを指定したパスにコピーする例を次に示します。

 
Imports System
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim path As String = "c:\temp\MyTest.txt"
        Dim path2 As String = path + "temp"

        Try
            Dim fs As FileStream = File.Create(path)
            fs.Close()

            ' Ensure that the target does not exist.
            File.Delete(path2)

            ' Copy the file.
            File.Copy(path, path2)
            Console.WriteLine("{0} copied to {1}", path, path2)

            ' Try to copy the same file again, which should succeed.
            File.Copy(path, path2, True)
            Console.WriteLine("The second Copy operation succeeded, which was expected.")

        Catch
            Console.WriteLine("Double copying is not allowed, which was not expected.")
        End Try
    End Sub
End Class

[C#] 
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        string path2 = path + "temp";

        try 
        {
            // Create the file and clean up handles.
            using (FileStream fs = File.Create(path)) {}

            // Ensure that the target does not exist.
            File.Delete(path2);

            // Copy the file.
            File.Copy(path, path2);
            Console.WriteLine("{0} copied to {1}", path, path2);

            // Try to copy the same file again, which should succeed.
            File.Copy(path, path2, true);
            Console.WriteLine("The second Copy operation succeeded, which was expected.");
        } 

        catch 
        {
            Console.WriteLine("Double copy is not allowed, which was not expected.");
        }
    }
}

[C++] 
#using <mscorlib.dll>

using namespace System;
using namespace System::IO;

int main() {
    String* path = S"c:\\temp\\MyTest.txt";
    String* path2 = String::Concat(path, S"temp");

    try {
        // Create the file and clean up handles.
        IDisposable* file = __try_cast<IDisposable*>(File::Create(path));
        if (file) file->Dispose();

        // Ensure that the target does not exist.
        File::Delete(path2);

        // Copy the file.
        File::Copy(path, path2);
        Console::WriteLine(S"{0} copied to {1}", path, path2);

        // Try to copy the same file again, which should succeed.
        File::Copy(path, path2, true);
        Console::WriteLine(S"The second Copy operation succeeded, which was expected.");
    } catch (Exception*) {
        Console::WriteLine(S"Double copy is not allowed, which was not expected.");
    }
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: 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, Common Language Infrastructure (CLI) Standard

.NET Framework セキュリティ:

参照

File クラス | File メンバ | System.IO 名前空間 | File.Copy オーバーロードの一覧 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み | 基本のファイル I/O | 新しく作成したデータ ファイルの読み取りと書き込み