1

皆さん、

ボリュームをアンマウントできるはずの小さなアプリを開発しています。

現在、ボリュームがマウントできないかどうかを判断するために、次のコードを使用しています。

BOOL isRemovable, isWritable, isUnmountable;
NSString *description, *type;

BOOL succ = [ws getFileSystemInfoForPath:[itemInfo objectForKey:@"path"]
                isRemovable:&isRemovable
                isWritable:&isWritable
                isUnmountable:&isUnmountable
                description:&description
                type:&type];

問題は、CDやDVDなどの物理的に取り外し可能なボリュームのみがisUnmountable=YESフラグを取得することです。USBデバイスはマウントできませんが、マウントできません。

あなたたちはそのための解決策を持っていますか?

- - 編集

FATフォーマットの別のUSBスティックで試してみました。Macに2台のUSBハードディスクを接続しました。これらはFinderまたはディスクユーティリティからマウントできません。これらはHFS形式です。上記のコードを使用する出力を作成しました。

/、hfs、アンマウント可能:NO、リムーバブル:NO
/ Volumes / Elephant、hfs、アンマウント可能:NO、リムーバブル:NO
/ Volumes / Time Machine、hfs、アンマウント可能:NO、リムーバブル:NO
/ Volumes / USBSTICK、msdos、アンマウント可能:YES 、取り外し可能:はい

デバイスがFATまたはMSDOS形式の場合にのみメソッドがYESを返すようです。他の2つ(Elephant、Time Machine)は、USB経由で接続され、取り外しと取り外しが必要なボリュームであるため、これは奇妙なことです。その情報を取得する別の方法はありますか、またはコードで何か間違ったことをしましたか?

-

よろしく

マルコ

4

1 に答える 1

1

あなたの正確なコードを使用して、私自身のUSBスティック(1GBのクルーザー-はい、私は遅れていることを知っています)で、私はisRemovableに対してYESを得ています。

BOOLは通常YESまたはNOとして表されますが、TRUEは機能します。念のため、それもテストしました。毎回isRemovable==TRUE/YESを取得しています。

したがって、「アンマウント/削除可能」の条件は、ボリューム上のリソースを実際に使用しているかどうかに依存する可能性があるため、このメソッドが「先に進んでアンマウント」で応答するのを妨げている可能性があります。あなたの質問のより多くの文脈は、その何かを特定するのに役立つかもしれません。

于 2010-08-12T18:55:26.977 に答える