私はこれが古いことを知っていますが、リンク上のコードの実際の問題 (ブライアン バートン博士によって既に言及されている以外に) が null でない場合に、最初に開いたファイルを閉じていないことです。したがって、代わりに:
if( file == nil )then
-- Doesn't Already Exist, So Copy it In From Resource Directory
pathSource = system.pathForFile( dbName, system.ResourceDirectory )
fileSource = io.open( pathSource, "r" )
contentsSource = fileSource:read( "*a" )
-- Write Destination File in Documents Directory
pathDest = system.pathForFile( dbName, system.DocumentsDirectory )
fileDest = io.open( pathDest, "w" )
fileDest:write( contentsSource )
-- Done
io.close( fileSource )
io.close( fileDest )
end
次のように、最後に ELSE 句を追加する必要があります。
if( file == nil )then
-- Doesn't Already Exist, So Copy it In From Resource Directory
pathSource = system.pathForFile( dbName, system.ResourceDirectory )
fileSource = io.open( pathSource, "rb" )
contentsSource = fileSource:read( "*a" )
-- Write Destination File in Documents Directory
pathDest = system.pathForFile( dbName, system.DocumentsDirectory )
fileDest = io.open( pathDest, "wb" )
fileDest:write( contentsSource )
-- Doneb
io.close( fileSource )
io.close( fileDest )
else
io.close(file)
end
乾杯!