File.Move 메서드

정의

오버로드

Move(String, String)

지정된 파일을 새 위치로 이동하고 새 파일의 이름을 지정할 수 있는 옵션을 제공합니다.Moves a specified file to a new location, providing the option to specify a new file name.

Move(String, String, Boolean)

새 파일 이름을 지정하고 대상 파일이 이미 있으면 덮어쓰는 옵션을 제공하여, 지정된 파일을 새 위치로 이동합니다.Moves a specified file to a new location, providing the options to specify a new file name and to overwrite the destination file if it already exists.

Move(String, String)

지정된 파일을 새 위치로 이동하고 새 파일의 이름을 지정할 수 있는 옵션을 제공합니다.Moves a specified file to a new location, providing the option to specify a new file name.

public:
 static void Move(System::String ^ sourceFileName, System::String ^ destFileName);
public static void Move (string sourceFileName, string destFileName);
static member Move : string * string -> unit
Public Shared Sub Move (sourceFileName As String, destFileName As String)

매개 변수

sourceFileName
String

이동할 파일의 이름입니다.The name of the file to move. 상대 또는 절대 경로가 포함될 수 있습니다.Can include a relative or absolute path.

destFileName
String

파일에 대한 새 경로 및 이름입니다.The new path and name for the file.

예외

대상 파일이 이미 있습니다.The destination file already exists.

-또는--or- sourceFileName을 찾을 수 없습니다.sourceFileName was not found.

sourceFileName 또는 destFileNamenull인 경우sourceFileName or destFileName is null.

sourceFileName 또는 destFileName이 빈 문자열이거나 공백만을 포함하거나 InvalidPathChars에 정의된 잘못된 문자를 포함합니다.sourceFileName or destFileName is a zero-length string, contains only white space, or contains invalid characters as defined in InvalidPathChars.

호출자에게 필요한 사용 권한이 없습니다.The caller does not have the required permission.

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.The specified path, file name, or both exceed the system-defined maximum length.

sourceFileName 또는 destFileName에 지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).The path specified in sourceFileName or destFileName is invalid, (for example, it is on an unmapped drive).

sourceFileName 또는 destFileName의 형식이 잘못되었습니다.sourceFileName or destFileName is in an invalid format.

예제

다음 예제에서는 파일을 이동 합니다.The following example moves a file.

using namespace System;
using namespace System::IO;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp2\\MyTest.txt";
   try
   {
      if (  !File::Exists( path ) )
      {
         
         // This statement ensures that the file is created,
         // but the handle is not kept.
         FileStream^ fs = File::Create( path );
         if ( fs )
                  delete (IDisposable^)fs;
      }
      
      // Ensure that the target does not exist.
      if ( File::Exists( path2 ) )
            File::Delete( path2 );
      
      // Move the file.
      File::Move( path, path2 );
      Console::WriteLine( "{0} was moved to {1}.", path, path2 );
      
      // See if the original exists now.
      if ( File::Exists( path ) )
      {
         Console::WriteLine( "The original file still exists, which is unexpected." );
      }
      else
      {
         Console::WriteLine( "The original file no longer exists, which is expected." );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp2\MyTest.txt";
        try 
        {
            if (!File.Exists(path)) 
            {
                // This statement ensures that the file is created,
                // but the handle is not kept.
                using (FileStream fs = File.Create(path)) {}
            }

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

            // Move the file.
            File.Move(path, path2);
            Console.WriteLine("{0} was moved to {1}.", path, path2);

            // See if the original exists now.
            if (File.Exists(path)) 
            {
                Console.WriteLine("The original file still exists, which is unexpected.");
            } 
            else 
            {
                Console.WriteLine("The original file no longer exists, which is expected.");
            }			
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp2\MyTest.txt"

        Try
            If File.Exists(path) = False Then
                ' This statement ensures that the file is created,
                ' but the handle is not kept.
                Dim fs As FileStream = File.Create(path)
                fs.Close()
            End If

            ' Ensure that the target does not exist.
            If File.Exists(path2) Then
                File.Delete(path2)
            End If

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

            ' See if the original file exists now.
            If File.Exists(path) Then
                Console.WriteLine("The original file still exists, which is unexpected.")
            Else
                Console.WriteLine("The original file no longer exists, which is expected.")
            End If
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

설명

이 메서드는 디스크 볼륨에서 작동 하 고 원본 및 대상 같으면 예외를 throw 하지 않습니다.This method works across disk volumes, and it does not throw an exception if the source and destination are the same.

같은 이름의 파일을 해당 디렉터리로 이동 하 여 파일을 바꾸려고 하면 IOException이 throw 됩니다.Note that if you attempt to replace a file by moving a file of the same name into that directory, an IOException is thrown. 이 문제를 방지 하려면 다음을 수행 합니다.To avoid this problem:

  • .NET Core 3.0 이상 버전에서는 매개 변수 overwritetrue로 설정 하 Move(String, String, Boolean)를 호출 하 여 파일이 있는 경우이 파일을 바꿀 수 있습니다.In .NET Core 3.0 and later versions, you can call Move(String, String, Boolean) setting the parameter overwrite to true, which will replace the file if it exists.

  • 모든 .NET 버전에서 Move를 호출 하기 전에 Delete(String)을 호출할 수 있습니다. 그러면 파일이 있는 경우에만 삭제 됩니다.In all .NET versions, you can call Delete(String) before calling Move, which will only delete the file if it exists.

sourceFileNamedestFileName 인수는 상대 또는 절대 경로 정보를 포함할 수 있습니다.The sourceFileName and destFileName arguments can include relative or absolute path information. 상대 경로 정보는 현재 작업 디렉터리에 상대적으로 해석 됩니다.Relative path information is interpreted as relative to the current working directory. 현재 작업 디렉터리를 가져오려면 GetCurrentDirectory를 참조 하세요.To obtain the current working directory, see GetCurrentDirectory.

디스크 볼륨에서 파일을 이동 하려는 경우 해당 파일이 사용 중인 파일을 대상에 복사 됩니다 있지만 소스에서 삭제 되지 않습니다.If you try to move a file across disk volumes and that file is in use, the file is copied to the destination, but it is not deleted from the source.

일반적인 i/o 작업 목록은 일반적인 I/o 작업을 참조 하세요.For a list of common I/O tasks, see Common I/O Tasks.

보안

FileIOPermission
sourceFileName에서 읽고 destFileName에 쓰는 데 사용할 수 있습니다.for reading from sourceFileName and writing to destFileName. 연관 된 열거형: Read, WriteAssociated enumerations: Read, Write

추가 정보

Move(String, String, Boolean)

새 파일 이름을 지정하고 대상 파일이 이미 있으면 덮어쓰는 옵션을 제공하여, 지정된 파일을 새 위치로 이동합니다.Moves a specified file to a new location, providing the options to specify a new file name and to overwrite the destination file if it already exists.

public:
 static void Move(System::String ^ sourceFileName, System::String ^ destFileName, bool overwrite);
public static void Move (string sourceFileName, string destFileName, bool overwrite);
static member Move : string * string * bool -> unit
Public Shared Sub Move (sourceFileName As String, destFileName As String, overwrite As Boolean)

매개 변수

sourceFileName
String

이동할 파일의 이름입니다.The name of the file to move. 상대 또는 절대 경로가 포함될 수 있습니다.Can include a relative or absolute path.

destFileName
String

파일에 대한 새 경로 및 이름입니다.The new path and name for the file.

overwrite
Boolean

대상 파일이 이미 있는 경우 덮어쓰려면 true로 설정하고, 그렇지 않으면 false로 설정합니다.true to overwrite the destination file if it already exists; false otherwise.

예외

sourceFileName을 찾을 수 없습니다.sourceFileName was not found.

sourceFileName 또는 destFileNamenull인 경우sourceFileName or destFileName is null.

sourceFileName 또는 destFileName이 빈 문자열이거나 공백만을 포함하거나 InvalidPathChars에 정의된 잘못된 문자를 포함합니다.sourceFileName or destFileName is a zero-length string, contains only white space, or contains invalid characters as defined in InvalidPathChars.

호출자에게 필요한 사용 권한이 없습니다.The caller does not have the required permission.

지정된 경로, 파일 이름 또는 둘 다가 시스템에서 정의한 최대 길이를 초과합니다.The specified path, file name, or both exceed the system-defined maximum length.

sourceFileName 또는 destFileName에 지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).The path specified in sourceFileName or destFileName is invalid, (for example, it is on an unmapped drive).

sourceFileName 또는 destFileName의 형식이 잘못되었습니다.sourceFileName or destFileName is in an invalid format.

예제

다음 예제에서는 파일을 이동 합니다.The following example moves a file.

using namespace System;
using namespace System::IO;

int main()
{
   String^ path = "c:\\temp\\MyTest.txt";
   String^ path2 = "c:\\temp2\\MyTest.txt";
   try
   {
      if (  !File::Exists( path ) )
      {
         
         // This statement ensures that the file is created,
         // but the handle is not kept.
         FileStream^ fs = File::Create( path );
         if ( fs )
                  delete (IDisposable^)fs;
      }
      
      // Ensure that the target does not exist.
      if ( File::Exists( path2 ) )
            File::Delete( path2 );
      
      // Move the file.
      File::Move( path, path2 );
      Console::WriteLine( "{0} was moved to {1}.", path, path2 );
      
      // See if the original exists now.
      if ( File::Exists( path ) )
      {
         Console::WriteLine( "The original file still exists, which is unexpected." );
      }
      else
      {
         Console::WriteLine( "The original file no longer exists, which is expected." );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }
}
using System;
using System.IO;

class Test 
{
    public static void Main() 
    {
        string path = @"c:\temp\MyTest.txt";
        string path2 = @"c:\temp2\MyTest.txt";
        try 
        {
            if (!File.Exists(path)) 
            {
                // This statement ensures that the file is created,
                // but the handle is not kept.
                using (FileStream fs = File.Create(path)) {}
            }

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

            // Move the file.
            File.Move(path, path2);
            Console.WriteLine("{0} was moved to {1}.", path, path2);

            // See if the original exists now.
            if (File.Exists(path)) 
            {
                Console.WriteLine("The original file still exists, which is unexpected.");
            } 
            else 
            {
                Console.WriteLine("The original file no longer exists, which is expected.");
            }			
        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO
Imports System.Text

Public Class Test
    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"
        Dim path2 As String = "c:\temp2\MyTest.txt"

        Try
            If File.Exists(path) = False Then
                ' This statement ensures that the file is created,
                ' but the handle is not kept.
                Dim fs As FileStream = File.Create(path)
                fs.Close()
            End If

            ' Ensure that the target does not exist.
            If File.Exists(path2) Then
                File.Delete(path2)
            End If

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

            ' See if the original file exists now.
            If File.Exists(path) Then
                Console.WriteLine("The original file still exists, which is unexpected.")
            Else
                Console.WriteLine("The original file no longer exists, which is expected.")
            End If
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

설명

이 메서드는 디스크 볼륨에서 작동 하 고 원본 및 대상 같으면 예외를 throw 하지 않습니다.This method works across disk volumes, and it does not throw an exception if the source and destination are the same.

sourceFileNamedestFileName 인수는 상대 또는 절대 경로 정보를 포함할 수 있습니다.The sourceFileName and destFileName arguments can include relative or absolute path information. 상대 경로 정보는 현재 작업 디렉터리에 상대적으로 해석 됩니다.Relative path information is interpreted as relative to the current working directory. 현재 작업 디렉터리를 가져오려면 GetCurrentDirectory를 참조 하세요.To obtain the current working directory, see GetCurrentDirectory.

디스크 볼륨에서 파일을 이동 하려는 경우 해당 파일이 사용 중인 파일을 대상에 복사 됩니다 있지만 소스에서 삭제 되지 않습니다.If you try to move a file across disk volumes and that file is in use, the file is copied to the destination, but it is not deleted from the source.

일반적인 i/o 작업 목록은 일반적인 I/o 작업을 참조 하세요.For a list of common I/O tasks, see Common I/O Tasks.

보안

FileIOPermission
sourceFileName에서 읽고 destFileName에 쓰는 데 사용할 수 있습니다.for reading from sourceFileName and writing to destFileName. 연관 된 열거형: Read, WriteAssociated enumerations: Read, Write

추가 정보

적용 대상