Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
네트웍에서 파일 복사방법??
네트웍으로 연결된 컴퓨터 이름도 찾고 디렉토리 생성하는 루틴을
구현했습니다. 그런데 다른 컴퓨터의 특정 디렉토리로 파일 복사하는
방법을 모르겠습니다.
고수님들의 지도를 한수 부탁합니다.
1
COMMENTS
구창민
•
1999.07.09 10:02
장일형 께서 말씀하시기를...
> 네트웍으로 연결된 컴퓨터 이름도 찾고 디렉토리 생성하는 루틴을
> 구현했습니다. 그런데 다른 컴퓨터의 특정 디렉토리로 파일 복사하는
> 방법을 모르겠습니다.
> 고수님들의 지도를 한수 부탁합니다.
장일형님 안녕하세요?
만약 네트웍으로 공유되어 있는 폴더에서 파일을
복사하신다면 '네트웍 드라이브명디렉토리명..화일이름' 형태로
하시고, 파일복사 API 함수는
CopyFile(pstr, pstr2, false);
Parameter는
//CopyFile(소스화일명, 데스트화일명, 플래그) 마지막 인자인
플래그는 false 일경우 화일이 존재할때 덮어쓴다.)
로 복사하면 일반 복사와 같이 네트웍 상에서도 복사가 됩니다.
그렇지 않고, 공유되지 않은 디렉토리에서 복사를 수행하려면
Socket통신을 이용해야 하는데, 좀 까다롭습니다.
화일이란 놈이 워낙 믿지못할 변화수가 많이 발생해서,
이에 따르는 수많은 에러처리 루틴도 작성해야 하구..
일전에 제가 사용해본 방식은 TServerSocket과 TClientSocket을
이용한 방식이었습니다.
간단히 설명드리면, 아래처럼..
try
Fstream := Tfilestream.create('Open할 화일명', fmopenread);
except
//에러처리;
end;
Fstream.ReadBuffer(Fbuffer//화일의 내용을 저장해둘 변수, 1024);
//화일에서 1024Byte만큼읽어서
FCsocket.Socket.SendBuf(Fbuffer, 1024);//파일 내용 전송
end;
이런 형태로 파일의 끝까지 반복하고 받는 쪽에서는 같은 방법으로
ReceiveBuf로 읽어서 Write모드로 화일을 생성시킨다음
그 화일에 쓰는방법을 사용했었습니다.
그리고, 알고 계셔야 할 한가지 문제점은 1024 정도의 크기로 보낸
이유인데, 왜냐하면 시스템의 MTU 크기때문입니다.
전송되는 일련의 바이트 정보는 시스템 버퍼가 관장하며,
일반적인 윈도우의 MTU는 1500으로 알고 있습니다.
실제로 보내보니 4000 바이트 이상되는 내용은 버퍼가 처리를 못하고
중도에 문자열이 잘리는 현상이 자주 발생하더군요..
PPP 접속일 경우에는 더욱 더 1500 이하로 잘라서 보내야 합니다.
그래야 안전합니다.
도움이 되셨나 모르겠습니다.
그럼...
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
조창범
1999.07.09 03:21
0
COMMENTS
/
0
LIKES
델파이가 갑자기 서는 (?) 이유?
하재희
1999.07.09 02:17
0
COMMENTS
/
0
LIKES
질문]3Tier에서 서버로 Update SQL을 날렸는데?
이의준
1999.07.09 01:38
0
COMMENTS
/
0
LIKES
PARADOX에서 rowid를 읽는 방법???
윤성철
1999.07.09 01:34
0
COMMENTS
/
0
LIKES
[Q] sql server 7.0 과 delphi 연결 사용..
이명학
•
1999.07.09 01:20
1
COMMENTS
/
0
LIKES
MDI에서 Child 제어하기
이정욱
•
1999.07.09 01:26
MDI폼의 이벤트에 OnActivate이벤트가 있습니다. 자신이 활성화 될때 이 이벤트가 실행됩니다. 이명학 ...
별지기
•
1999.07.09 01:05
1
COMMENTS
/
0
LIKES
3388번의 에러를 알려주신데로 했는데요...저기..
글쎄요
•
1999.07.09 19:58
엑세스에러는 해제된 객체를 참조하거나 없는 객체를 참조할 때 발생하지요 이 에러는 특별히 에러 잡는 ...
박광식
1999.07.09 00:55
0
COMMENTS
/
0
LIKES
excel => F1BOOK 으로 가져오기?
장일형
•
1999.07.09 00:28
1
COMMENTS
/
0
LIKES
네트웍에서 파일 복사방법??
네트웍으로 연결된 컴퓨터 이름도 찾고 디렉토리 생성하는 루틴을 구현했습니다. 그런데 다른 컴퓨터의 특정 디렉토리로 파일 복사하는 방법을 모르겠습니다. 고수님들의 지도를 한수 부탁합니다.
구창민
•
1999.07.09 10:02
장일형 께서 말씀하시기를... > 네트웍으로 연결된 컴퓨터 이름도 찾고 디렉토리 생성하는 루틴을 > 구...
chbang
1999.07.09 00:14
0
COMMENTS
/
0
LIKES
파라독스 함수???
안명호
•
1999.07.08 23:32
1
COMMENTS
/
0
LIKES
간접적으로 한글 입력....
이정욱
•
1999.07.09 01:38
민성기님의 글을 퍼왔습니다. 화면 키보드 만들기. 안녕하세요. 민성기 입니다. 사진 자판기 같은 ...
bisbuck
•
1999.07.08 23:10
1
COMMENTS
/
0
LIKES
오라클을 파라독스로...
조복기
•
1999.07.09 05:07
안녕하세요..조복기입니다. 오라클이라든가 아님 SQL-Server의 SQL환경을 파라독스환경으로 변환시에...
hopeship
•
1999.07.08 21:36
1
COMMENTS
/
0
LIKES
델파이에서 지원하는 DB에 대한 질문입니다.
이정욱
•
1999.07.09 01:50
쩝.. 전 DB는 잘 모르지만.. 아는한도내에서~ 먼저 Alias를 사용하지 않고 사용하는 방법은 이렇습니...
배재민
•
1999.07.08 20:53
2
COMMENTS
/
0
LIKES
조인 쿼리문 작성...
최석기
•
1999.07.08 22:09
배재민 께서 말씀하시기를... > 예를 들어 두개의 테이블(MTbl,STbl)이 있습니다. > > MTbl은 주 정보...
배재민
•
1999.07.09 00:57
만약 aCCESS로 할 경우? OUTER 조인은 어떻게 합니까 ?
별지기
•
1999.07.08 20:43
3
COMMENTS
/
0
LIKES
저두 에러좀 잡아주세요
하명훈
•
1999.07.08 20:50
별지기 께서 말씀하시기를... > 안녕하세요.. > 프로그램을 실행시킨후 메뉴를 클릭하면 다음과 같은 에...
별지기
•
1999.07.08 23:11
하명훈 께서 말씀하시기를... > 별지기 께서 말씀하시기를... > > 안녕하세요.. > > 프로그램을 실행시...
글쎄요
•
1999.07.08 23:42
MDI에서는 차일드 폼을 Modal로 띄울 수 없습니다. 그에러는 그 것 때문에 생긴 겁니다. 그리고 MDI폼의 ...
이룡
1999.07.08 20:08
0
COMMENTS
/
0
LIKES
에러 잡아줘요.....
김동원
1999.07.08 19:59
0
COMMENTS
/
0
LIKES
정보처리기사 델파이로 푼 예제 좀...
오상석
•
1999.07.08 19:44
1
COMMENTS
/
0
LIKES
델파이가 CPU특성을 타는지?
이정욱
•
1999.07.09 01:43
글쎄요.. 제생각에는 CPU보다는 설치해놓은 Window에 문제가 있는듯 하네요. 윈도우를 다시 설치해보...
최선기
•
1999.07.08 19:30
2
COMMENTS
/
0
LIKES
sql문에서 인용부호('또는 ''')의 의미...?
철이
•
1999.07.23 00:45
최선기 께서 말씀하시기를... > sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장. ...
데빠이
•
1999.07.08 19:52
최선기 께서 말씀하시기를... > sql문에서 인용부호의 의미좀 알려주세요.. 예를 들어 아래와 같은 문장. ...
이명학
1999.07.08 19:14
0
COMMENTS
/
0
LIKES
Unit DBCtrls was compiled...
이국형
1999.07.08 19:03
0
COMMENTS
/
0
LIKES
Patch 별 빌드넘버에 대해
장일형
1999/07/09 00:28
Views
378
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 네트웍으로 연결된 컴퓨터 이름도 찾고 디렉토리 생성하는 루틴을
> 구현했습니다. 그런데 다른 컴퓨터의 특정 디렉토리로 파일 복사하는
> 방법을 모르겠습니다.
> 고수님들의 지도를 한수 부탁합니다.
장일형님 안녕하세요?
만약 네트웍으로 공유되어 있는 폴더에서 파일을
복사하신다면 '네트웍 드라이브명디렉토리명..화일이름' 형태로
하시고, 파일복사 API 함수는
CopyFile(pstr, pstr2, false);
Parameter는
//CopyFile(소스화일명, 데스트화일명, 플래그) 마지막 인자인
플래그는 false 일경우 화일이 존재할때 덮어쓴다.)
로 복사하면 일반 복사와 같이 네트웍 상에서도 복사가 됩니다.
그렇지 않고, 공유되지 않은 디렉토리에서 복사를 수행하려면
Socket통신을 이용해야 하는데, 좀 까다롭습니다.
화일이란 놈이 워낙 믿지못할 변화수가 많이 발생해서,
이에 따르는 수많은 에러처리 루틴도 작성해야 하구..
일전에 제가 사용해본 방식은 TServerSocket과 TClientSocket을
이용한 방식이었습니다.
간단히 설명드리면, 아래처럼..
try
Fstream := Tfilestream.create('Open할 화일명', fmopenread);
except
//에러처리;
end;
Fstream.ReadBuffer(Fbuffer//화일의 내용을 저장해둘 변수, 1024);
//화일에서 1024Byte만큼읽어서
FCsocket.Socket.SendBuf(Fbuffer, 1024);//파일 내용 전송
end;
이런 형태로 파일의 끝까지 반복하고 받는 쪽에서는 같은 방법으로
ReceiveBuf로 읽어서 Write모드로 화일을 생성시킨다음
그 화일에 쓰는방법을 사용했었습니다.
그리고, 알고 계셔야 할 한가지 문제점은 1024 정도의 크기로 보낸
이유인데, 왜냐하면 시스템의 MTU 크기때문입니다.
전송되는 일련의 바이트 정보는 시스템 버퍼가 관장하며,
일반적인 윈도우의 MTU는 1500으로 알고 있습니다.
실제로 보내보니 4000 바이트 이상되는 내용은 버퍼가 처리를 못하고
중도에 문자열이 잘리는 현상이 자주 발생하더군요..
PPP 접속일 경우에는 더욱 더 1500 이하로 잘라서 보내야 합니다.
그래야 안전합니다.
도움이 되셨나 모르겠습니다.
그럼...