2013-10-20 77 views
0

在一個函數中我得到一個文件的引用。這可能是一種格式dir1/subdir/filename.txt
是否有Perl的辦法做到:如何創建一個文件的完整路徑,如果它不存在?

  1. 如果文件不存在,創建它目錄結構 好,如果它不存在
  2. 這種方式保證,如果兩個腳本試圖同時做同樣的 什麼都不會發生錯誤(例如最終與 損壞/鎖定的文件等)?
+3

您應該查看['File :: Path'](http://search.cpan.org/perldoc?File%3A%3APath)和'flock',或許。 – TLP

回答

0
  1. 要檢查文件是否存在,你可以做

my $filename="dir1/subdir/filename.txt";

if (-e $filename) 
{ 
    print "file exists"; 
    open(FILE, '<', $filename) or die 'Could not open file: ' . $!; 

} 

elsif (!-e $filename) 
{ 
print "file does not exist"; 

} 

兩個-e和-f可以用來檢查文件是否存在或不
2.爲了避免衝突,我認爲你可以在文件名中創建帶有創建時間的文件。但是,我不確定您是否可以使用相同的方式創建。

+1

'-e'檢查文件或目錄是否存在。儘管目錄不太可能被命名爲'filename.txt',你應該使用'-f'來檢查*文件*是否存在。 – NigoroJr

相關問題