2009-10-09 14 views

उत्तर

7
समारोह का उपयोग करके फ़ाइलें के आकस्मिक ओवरराइटिंग को रोकने के लिए एक रास्ता खोजने के लिए कोशिश कर रहा हूँ

फ़ाइल जांचने के लिए file.exists() का उपयोग करें, और यदि यह है, तो नाम के लिए एक स्ट्रिंग संलग्न करें।

संपादित करें:

धन्यवाद मारेक, मैं अपने विचार पर विस्तार करेंगे थोड़ा ... वह इस जोड़ सकता है save() और save.image() दोनों

SafeSave <- function(..., file=stop("'file' must be specified"), overwrite=FALSE, save.fun=save) { 
    if (file.exists(file) & !overwrite) stop("'file' already exists") 
    save.fun(..., file=file) 
} 

मैं बचाने के ऊपर लिख नहीं होगा से निपटने के लिए .. यदि source() का उपयोग आरईपीएल सत्र में किया गया था, तो उपयोगकर्ता फ़ंक्शन ओवरराइट से अवगत नहीं हो सकते हैं।

+0

क्या किसी को पता है कि उपयोगकर्ता को सूचित करने के लिए एक संवाद बॉक्स कैसे बनाना है कि फ़ाइल पहले से मौजूद है? उपयोगकर्ता बिना आर जानने के आर सत्र बंद कर सकता है और कुछ भी बचाया नहीं जाता है। – ggg

5

जैसा कि विन्स ने लिखा था कि आप अस्तित्व की जांच के लिए file.exists() का उपयोग कर सकते हैं।

save <- function(..., file=stop("'file' must be specified"), overwrite=FALSE) { 
    if (file.exists(file) & !overwrite) stop("'file' already exists") 
    base::save(..., file=file) 
} 

आप save.image() को बदलने के लिए समान लिख सकते हैं:

मैं मूल save समारोह को बदलने के लिए सुझाव देते हैं।

संबंधित मुद्दे