2017-09-23 11 views
1

たとえば、あるフォルダに3つのファイルがあります。 私はこのようにそれらを抽出したいと思います。ファイルの作成日とサイズをMacのフォルダに抽出しますか?

file_name create_time size 
A   2017-09-11 3MB 
B   2017-09-12 2MB 
C   2017-09-13 1MB 
+0

を参照してください '?file.info'。私はMacがファイルの作成時間を記録するかどうか分からない。 –

+0

check https://stackoverflow.com/questions/34123076/osx-how-to-get-the-creation-modification-time-of-a-file-from-the-command-lin –

答えて

1
library(Rcpp) 

# This likely only works on macOS 

# Define a C function to get the creation time 
cppFunction(
    includes = c("#include <sys/stat.h>"), 
    " 
long birth_time_raw(std::string x) { 
    struct stat ftime; 
    stat(x.c_str(), &ftime); 
    return(ftime.st_birthtimespec.tv_sec); 
} 
", 
) 

# Wrap it in a helper that does some sanity checks 
birth_time <- function(x) { 
    x <- path.expand(x) 
    if (!file.exists(x)) return(NULL) 
    as.POSIXct(birth_time_raw(x), origin="1970-01-01 00:00:00") 
} 

do.call(
    rbind, 
    lapply(
    dir("ƒ", full.names = TRUE), 
    function(.x) { 
     data.frame(
     file_name = basename(.x), 
     create_time = as.Date(birth_time(.x)), 
     size = sprintf("%3.1fMB", file.size(path.expand(.x))/1024/1024), 
     stringsAsFactors=FALSE 
    ) 
    } 
) 
) -> files_df 
## files_df 
## file_name create_time size 
## 1   A 2017-09-20 4.4MB 
## 2   B 2017-09-20 4.2MB 
## 3   C 2017-09-21 0.0MB 
+0

あなたは本当に 'ctimeヘルプページのように、 ''最後のステータス変更 ''ではなく、作成時ですか? –

+0

私はあなたが正しいと思われることを確認します。それまでLemmeは答えを取ります。 #ty – hrbrmstr

関連する問題