0

次のコードがあります。

private function uploadFile(file:File, packageId:String):void {
            try {
                var fullpath:String = file.nativePath;
                var filename:String = fullpath.substr(fullpath.lastIndexOf("/")+1,fullpath.length);
                packageItem.status = "Uploading file: "+filename;
                file.addEventListener(ProgressEvent.PROGRESS, function(event:ProgressEvent):void{uploadProgress(event, packageId)} );
                file.addEventListener(flash.events.Event.COMPLETE, function(event:flash.events.Event):void{uploadComplete(event, packageId)} );
                file.upload(urlRequest, packageId);
            } catch (error:Error) {
                logging.log(error.message); 
            }
        }

だから私はファイルオブジェクトのパスからファイル名を抽出します。

ファイルは次のものから来ています:

File.applicationStorageDirectory

問題は、mac osx のようにスラッシュの代わりにバックスラッシュを使用しているため、Windows ではこれが機能しないことです。Mac と Windows で動作するようにファイル名とファイルを分離する最良の方法は何でしょうか?

4

1 に答える 1

0

そのかなり明白です。

プロパティには、ファイルのurlファイルシステム URL があります。したがって、のnativePathファイル

C:\Documents and Settings\some_file.txt

urlの_

file:///C:/Documents%20and%20Settings/some_file.txt

あとは分割するだけで/完了です。

PS: unescapeURL タイプのフォーマットを削除するには、ファイル名が必要になる場合があります。

于 2012-05-29T13:11:14.947 に答える