1

Unixファイルシステムのファイルにメタデータを添付したい。 attrコマンドを使用するとそれが可能になりますが、コマンド構文では、アタッチされた変数のパスがdoubleqoutesである必要があります。

attr -s outpipe0 "/mnt/FUse/FileB" FileA

JavaでSystem.Runtime.execを使用して上記のコマンドを実行するにはどうすればよいですか。文字列配列引数を使用して実行しようとすると、上記の「/ mnt / FUse / FileB」を指定する必要があります。これは、二重引用符をJavaの文字列の終わりと見なすため、Javaプログラムで問題が発生します。基本的に、それ自体が二重引用符で囲まれた文字列引数を送信したいと思います。

誰かが回避策を提案できますか。

ありがとう

4

1 に答える 1

2

次のように、Javaのリテラル文字列内の引用符をエスケープできます。

"\"/mnt/FUse/FileB\""

これで、文字列に二重引用符を含める方法についての質問に対処できますが、プログラムが解決するかどうかは疑問です。これは、attrプログラムが実際に二重引用符を必要としている(または受け入れている)とは思えないためです。代わりに、シェルはそれらを食べます。たとえば、シェルに入力したコマンドが指定したコマンドである場合、引数がに渡される前に、シェルによって二重引用符が使用されますattr。したがって、二重引用符が必要かどうかは疑問です(ただし、必要な場合は、上記を参照してください)。

于 2011-06-05T22:20:19.587 に答える