컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Perl 펄] 디카 메타 정보를, JPG, RAW (NEF) 파일명으로 변경 유틸리티; E...C언어] 중첩 for문, 겹쳐진 for루프 예제 소스; Nested 'for' Loop니콘 정품 EN-EL9 배터리(리튬 이온 충전지) 취급 설명서 요약; Nikon Batte...불필요한 드라이브 제거하는 법, 멀티 메모리 리더기 사용시; Remove USB Drive...니콘 정품 카메라 가방, 토트백 사용기, 방수 방진 안됨; Nikon Camera Tote...디카 렌즈 먼지 청소 도구: 블로어+브러쉬 (블라워+브러시) 뽁뽁이/뾱뾱이/Blower B...SD 메모리 카드 리더기(멀티 리더기) 사용기: Memory Card Reader Revi...Java 자바] 중첩 for문, 겹쳐진 for루프 예제 소스; Nested 'for' Lo...Java 자바] 무한루프 만들기; while, for Infinite Loop밝은 렌즈는 사진이 밝게 나오나요? 대구경 렌즈란? Low F-Number Lens

Perl 펄] 파일명 변경, 디렉토리명 바꾸기; 리네임 함수; File Dir Rename

Friday, May 18, 2007

펄에서는 rename 함수(서브루틴)로 파일명이나 디렉토리명을 다른 이름으로 바꿀 수 있습니다.

주의 사항: 변경할 파일명으로 된 파일이 이미 존재한다면 덮어쓰게(Overwrite) 됩니다. 아무 경고도 없이 겹쳐쓰게 되고, 대상 파일의 내용은 교체되어 버립니다. 아주 위험하기에, 리네임 전에, 같은 파일명이 이미 존재하는지 체크해야 합니다.

리네임할 때마다 체크하는 것은 힘들어서, safeRename 이라는 이름의 함수를 만들었습니다. 같은 이름이 있다면 변경하지 않고 논리적 거짓(0)을 반환합니다.

파일 이름, 폴더 이름, 안전하게 변경 함수 예제


파일명: example.pl
#!/usr/bin/perl
use strict; use warnings;

  my $filename_old = "test000.txt";
  my $filename_new = "test111.txt";


  if (!safeRename($filename_old, $filename_new)) {
    print "이름 변경 에러\n";
  }
  else {
    print "성공적으로 변경\n";
  }



sub safeRename {
  my $old = shift;
  my $new = shift;

  # 원래 파일명과 새 파일명이 같으면 성공 반환
  return 1 if ( ($old eq $new) && -e $old);

  # 원래 이름의 파일/디렉토리가 없거나
  # 새 이름의 파일/디렉토리가 이미 존재하면 거짓(에러;0) 반환
  return 0 if (!-e $old || -e $new);

  # 모든 것이 정상일 경우에만 이름 변경
  rename($old, $new) or return 0;

  return 1; # 논리적 참(1; true) 반환
}



0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top