FileOpen 함수

업데이트: 2007년 11월

입력 또는 출력할 파일을 엽니다.

My 기능은 파일 입출력 작업에서 생산성 및 성능이 FileOpen보다 우수합니다. 자세한 내용은 My.Computer.FileSystem 개체를 참조하십시오.

Public Sub FileOpen( _
   ByVal FileNumber As Integer, _
   ByVal FileName As String, _
   ByVal Mode As OpenMode, _
   Optional ByVal Access As OpenAccess = OpenAccess.Default, _
   Optional ByVal Share As OpenShare = OpenShare.Default, _
   Optional ByVal RecordLength As Integer = -1 _
)

매개 변수

  • FileNumber
    필수적 요소. 임의의 유효한 파일 번호입니다. 다음으로 사용 가능한 파일 번호를 가져오려면 FreeFile 함수를 사용합니다.

  • FileName
    필수적 요소. 파일 이름을 지정하는 String 식입니다. 디렉터리나 폴더 및 드라이브가 포함될 수 있습니다.

  • Mode
    필수적 요소. 파일 모드(예: Append, Binary, Input, Output, Random)를 지정하는 열거형입니다. 자세한 내용은 OpenMode 열거형을 참조하십시오.

  • Access
    선택적 요소. Read, Write, ReadWrite 등과 같이 열려 있는 파일에 허용되는 작업을 지정하는 열거형입니다. 기본값으로 ReadWrite가 지정됩니다. 자세한 내용은 OpenAccess 열거형을 참조하십시오.

  • Share
    선택적 요소. Shared, Lock Read, Lock Write, Lock Read Write 등과 같이 열려 있는 파일에 대해 다른 프로세스에서 허용하지 않는 작업을 지정하는 열거형입니다. 기본값으로 Lock Read Write가 지정됩니다. 자세한 내용은 OpenShare 열거형을 참조하십시오.

  • RecordLength
    선택적 요소. 32,767(바이트)보다 작거나 같은 수입니다. 임의 액세스용으로 연 파일의 경우 이 값은 레코드 길이가 됩니다. 순차 파일의 경우 이 값은 버퍼링된 문자의 수입니다.

예외

예외 형식

오류 번호

조건

ArgumentException

5

Access, Share 또는 Mode가 잘못되었습니다.

ArgumentException

5

WriteOnly 파일을 Input용으로 열었습니다.

ArgumentException

5

ReadOnly 파일을 Output용으로 열었습니다.

ArgumentException

5

ReadOnly 파일을 Append용으로 열었습니다.

ArgumentException

5

레코드 길이가 음수입니다(–1은 아님).

IOException

52

FileNumber가 잘못되었거나(-1보다 작거나 255보다 큼) 이미 사용 중입니다.

IOException

55

FileName이 이미 열려 있거나 잘못되었습니다.

비구조적 오류 처리를 사용하는 Visual Basic 6.0 응용 프로그램을 업그레이드하는 경우에는 "오류 번호" 열을 참조하십시오. 오류 번호를 Number 속성(Err 개체)과 비교할 수 있습니다. 그러나 가능하면 이러한 오류 제어 방법을 Visual Basic의 구조적 예외 처리 개요에 설명된 방식으로 바꾸는 것이 좋습니다.

설명

FileOpen 함수는 이전 버전과의 호환성을 위해 제공되며 성능에 영향을 줄 수 있습니다. 레거시 응용 프로그램이 아닌 경우에는 My.Computer.FileSystem 개체가 보다 나은 성능을 발휘합니다. 자세한 내용은 Visual Basic을 사용한 파일 액세스를 참조하십시오.

파일에서 I/O 작업을 수행하려면 해당 파일을 열어야 합니다. FileOpen은 I/O를 위한 버퍼를 파일에 할당하고 버퍼에서 사용할 액세스 모드를 결정합니다.

보안 정보:

파일에 쓸 때 쓰려는 파일이 없는 경우 응용 프로그램에서 해당 파일을 만들어야 할 수 있습니다. 파일을 만들려면 파일이 만들어질 디렉터리에 대한 권한이 응용 프로그램에 있어야 합니다. 그러나 FileName에 지정된 파일이 이미 있는 경우 응용 프로그램에는 해당 파일 자체에 대한 Write 권한만 있으면 됩니다. 가능하면 배포할 때 파일을 만들고 전체 디렉터리 대신 해당 파일에 대한 Write 권한만 부여하는 것이 더 안전합니다. 또한 루트 디렉터리나 Program Files 디렉터리보다 사용자 디렉터리에 데이터를 쓰는 것이 더 안전합니다.

열려는 대상 채널은 FreeFile() 함수를 사용하여 찾을 수 있습니다.

보안 정보:

FileOpen 함수를 사용하려면 FileIOPermissionAccess 열거형에서 Read 권한이 있어야 합니다. 이 권한은 부분 신뢰 상태에서 해당 함수의 실행을 제한할 수 있습니다. 자세한 내용은 FileIOPermissionAccess 열거형 및 권한 요청을 참조하십시오.

예제

다음 예제에서는 FileOpen 함수를 사용하여 파일에 대한 입력 및 출력을 허용하는 다양한 방법을 보여 줍니다.

다음 코드는 TestFile 파일을 Input 모드로 엽니다.

FileOpen(1, "TESTFILE", OpenMode.Input)
' Close before reopening in another mode.
FileClose(1)

다음 예제에서는 쓰기 작업용으로 파일을 Binary 모드로 엽니다.

FileOpen(1, "TESTFILE", OpenMode.Binary,OpenAccess.Write)
' Close before reopening in another mode.
FileClose(1)

다음 예제에서는 파일을 Random 모드로 엽니다. 이 파일에는 Person 구조체의 레코드가 포함되어 있습니다.

Structure Person
    <VBFixedString(30)> Dim Name As String
    Dim ID As Integer
End Structure
Public Sub ExampleMethod()
    ' Count 30 for the string, plus 4 for the integer.
    FileOpen(1, "TESTFILE", OpenMode.Random, , , 34)
    ' Close before reopening in another mode.
    FileClose(1)
End Sub

다음 코드 예제에서는 파일을 Output 모드로 엽니다. 이 경우 임의의 프로세스에서 해당 파일에 대해 읽기 또는 쓰기 작업을 수행할 수 있습니다.

FileOpen(1, "TESTFILE", OpenMode.Output, OpenAccess.Default, OpenShare.Shared)
' Close before reopening in another mode.
FileClose(1)

다음 코드 예제에서는 읽기용으로 파일을 Binary 모드로 엽니다. 이 경우 다른 프로세스에서는 파일을 읽을 수 없습니다.

FileOpen(1, "TESTFILE", OpenMode.Binary, OpenAccess.Read, _
   OpenShare.LockRead)

스마트 장치 개발자 참고 사항

이 함수는 지원되지 않습니다.

요구 사항

네임스페이스:Microsoft.VisualBasic

**모듈:**FileSystem

어셈블리:

참고 항목

참조

FileClose 함수

FreeFile 함수

기타 리소스

Visual Basic에서 파일 읽기

Visual Basic에서 파일에 쓰기