1

ファイルの書き込みに以下のスクリプトを使用していますが、以下のようなエラーが発生することがあります。

set filepath to POSIX path of "Macintosh HD:Library:Application Support:Macromedia:mms.cfg"
try
    tell application "System Events"
        if file filepath exists then
            set myFile to open for access file filepath with write permission
            set fileData to read myFile
            set eof myFile to 0
            write "blah blah" to myFile
            close access myFile
        else
            return "File Not Found"
        end if
    end tell
on error
    return false
end try

エラー:

 "Network file permission error." number -5000 from file "Macintosh HD:Library:Application Support:Macromedia:mms.cfg"

また、このエラーが発生することもあり、開いているファイルを閉じることができません

"File file Macintosh HD:Library:Application Support:Macromedia:mms.cfg is already open." number -49 from file "Macintosh HD:Library:Application Support:Macromedia:mms.cfg"

オフファイルを閉じようとすると、次のエラーが発生します。

on openAFile(filepath)
    try
        set fp to open for access filepath with write permission

    on error errstr number errNum
        if errNum = -49 then
            close access filepath
            set fp to open for access filepath with write permission
        else
            display dialog errstr
            return false
        end if
    end try

    return fp
end openAFile

set pointer to openAFile("Macintosh HD:Library:Application Support:Macromedia:mms.cfg"
set fileContents to read pointer

エラー

"Can’t make \"Macintosh HD:Library:Application Support:Macromedia:mms.cfg\" into type file." number -1700 from "Macintosh HD:Library:Application Support:Macromedia:mms.cfg" to file
4

1 に答える 1

0

あなたが受け取っている「ネットワーク ファイル許可エラー」については説明できません。

「ファイル file Macintosh HD:Library:Application Support:Macromedia:mms.cfg は既に開いています。」ファイルを閉じずにスクリプト エディタでスクリプトを停止すると、エラーが発生します。close accessこれは、AppleScript がブロック内のコマンドに到達するのを妨げる他の論理エラーがある場合on error(または、不適切なタイミングで停止ボタンを押した場合) に発生します。Apple の AppleScript Editor は、スクリプトが停止したときに、漏洩したファイル参照を閉じません。

ファイルを開く前に閉じようとする回避策は機能する可能性がありますが、ファイルパスにfileまたはではなく文字列を渡しています。aliasとを使用open for access file filepathclose access file filepathます。

于 2012-12-20T01:54:29.620 に答える