ファイルに関する各種演算

ファイルまたはディレクトリの存在チェック

-> ファイルの存在チェック

Java

import java.io.File;

if (new File(filepath).exists()) {
    // ファイルまたはディレクトリ等が存在する場合
    ...;
}

PHP

if (file_exists($filepath)) {
    // ファイルまたはディレクトリ等が存在する場合
    ...;
} else {
    // ファイルまたはディレクトリ等が存在しない場合
    ...;
}

Python

import os

if os.path.exists(filepath):
    # ファイルまたはディレクトリ等が存在する場合
    ...
else:
    # ファイルまたはディレクトリ等が存在しない場合
    ...;

Ruby

if File.exist?(filepath)
  # ファイルまたはディレクトリ等が存在する場合
  ...
else
  # ファイルまたはディレクトリ等が存在しない場合
  ...
end

Perl

if ( -e $filepath ) {
    # ファイルまたはディレクトリ等が存在する場合
    ...;
} else {
    # ファイルまたはディレクトリ等が存在しない場合
    ...;
}

sh (シェルスクリプト)

if [ -e "$FILEPATH" ]; then
    # ファイルまたはディレクトリ等が存在する場合
    ...
else
    # ファイルまたはディレクトリ等が存在しない場合
    ...
fi

ディレクトリかどうかのチェック

Java

import java.io.File;

if (new File(filepath).isDirectory()) {
    // ディレクトリの場合
    ...;
}

PHP

if (is_dir($filepath)) {
    // ディレクトリの場合
    ...;
}

Ruby

if File.ftype(filepath) == 'directory'
  # ディレクトリの場合
  ...
end

Perl

if( -d $filepath ){
    # ディレクトリの場合
    ...;
}

sh (シェルスクリプト)

if [ -d "$FILEPATH" ]; then
    # ディレクトリの場合
    ...
fi

シンボリックリンクかどうかのチェック

PHP

if (fileperms($filepath) & 0xA000) {
    // シンボリックリンクの場合
    ...;
}

Ruby

if File.ftype(filepath) == 'link'
  # シンボリックリンクの場合
  ...
end

Perl

if( -l $filepath ){
    # シンボリックリンクの場合
    ...;
}

sh (シェルスクリプト)

if [ -L "$FILEPATH" ]; then
    # シンボリックリンクの場合
    ...
fi

ファイルサイズのチェック

-> ファイルサイズを取得するには

Java

import java.io.File;

if (new File(filepath).length() > 0) {
    // ファイルサイズが0より大きい場合
    ...;
}

PHP

if (filesize($filepath) > 0) {
    // ファイルサイズが0より大きい場合
    ...;
}

Ruby

if File.size?(filepath)
  # ファイルサイズが0より大きい場合
  ...
end

-> ファイルサイズの取得

Perl

if ( -s $filepath) {
    # ファイルサイズが0より大きい場合
    ...
}

sh (シェルスクリプト)

if [ -s "$FILEPATH" ]; then
    # ファイルサイズが0より大きい場合
    ...
fi

2ファイルのタイムスタンプの比較

PHP

if (filemtime($filePath1) > filemtime($filePath2)) {
    # $filePath1 が $filePath2 よりもタイムスタンプが新しい場合
    ...;
}

Ruby

if File.mtime(filepath1) > File.mtime(filepath2)
  # filepath1 が filepath2 よりもタイムスタンプが新しい場合
  ...
end

Perl

if ((stat($filepath1))[9] > (stat($filepath2))[9]) {
    # $filepath1 が $filepath2 よりもタイムスタンプが新しい場合
    ...;
}

sh (シェルスクリプト)

if [ "$FILEPATH1" -nt "$FILEPATH2" ]; then
    # FILEPATH1 が FILEPATH2 よりもタイムスタンプが新しい場合
    ...
fi

if [ "$FILEPATH"1 -ot "$FILEPATH"2 ]; then
    # FILEPATH1 が FILEPATH2 よりもタイムスタンプが古い場合
    ...
fi
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク