2012-04-24 17 views
0

私はこれらの構文を試しましたが、なぜうまくいかなかったのですか?ウィンドウ内でファイルの変更権限をjava native(cacls)で使用する方法

本当にあなたの助言に喜んでいます。

ありがとうございます。悪い英語のために申し訳ありません。

package priviledge;

import java.io.File; import java.io.IOException;

/** * * @author DINA */ public class Main {

/** * @param args the command line arguments */ public static void main(String[] args) throws InterruptedException, IOException { File f = new File("C:/lala/images1.jpg"); permission(f); } public static void permission(File src) throws InterruptedException, IOException { // win32 command line variant Process p = Runtime.getRuntime().exec("cacls 000 " + src.getPath()); p.waitFor(); // p.waitFor()
+1

どうしましたか?何を手に入れましたか? – MByD

+0

私は、これらの構文では、これらの構文のファイルアクセス権を記述パスとして変更できることを念頭に置いています。 –

+0

私は何も得られません。 Windowsエクスプローラでファイル(images1.jpg)をチェックすると、ファイルのアクセス権が機能しません。 –

答えて

1

異なりchmodからcacls動作するため。特に、最初の引数はファイル名です(これは、000という名前のファイルでこれを実行しようとしていることを意味します)。 ACLを使用しているWindowsは、3つの8進数にうまく収まらないため、さらに複雑になります。

caclsのドキュメントを参照してください(コマンドプロンプトで入力してください)。コマンドラインを修正してください。 ABCグループへのフルアクセス権を付与するために例えばのでCACLSグループの

+0

私はそれをしましたが、コマンドプロンプトのcaclsヘルプについて理解できません。グループのファイルアクセス許可を変更したい場合は、Javaコードで何を入力する必要がありますか? –

1

は、ユーザーと同じであるあなたは、「CACLSファイル名/ gのABC:F」を入力しますが、CACLS

+0

ファイル名はパスで完了する必要がありますか? –

+0

yes 'cacls C:\ lala \ images1.jpg/E/g ABC:R'を実行する別の例として、' Runtime.getRuntime()。exec( "cacls" + src.getPath()+ "/" E " g ABC:R ");' – msam

+0

よ、やってみるよ。ありがとう。 –

0
のマニュアルの詳細を表示することができます

私はまた、フォルダのパーミッションの変更を伴うプロジェクトに取り組んでいました。私は多くの方法を試しましたが、私が期待していたようにうまくいかなかったので、私は新しいアイデアを考え出しました。

は、テキストファイルを作成し、そのファイル内のコマンドを書いた、にそれを変換した:それについて私は、フォルダのアクセス権を変更したい、だから、これは私がやったことあるバッチファイル、

に関する基本的な知識を必要としますバッチファイル、および使用してそれを実行:

File file = new File("server.bat"); 
 
    Desktop.getDesktop().open(file);

(Javaの1.6以降のための作品は)、そのバッチファイルを削除しました。

しかし、この方法では、1回のショットで任意の数のコマンドを実行できます。この方法では、ディレクトリをバッチファイルで変更できるので、作業ディレクトリを心配する必要はありません。これは悪い考えかもしれない、私はJavaの初心者ですが、私はあなたに私の考えを教えました。

+0

これはどのようにQに答えるかわかりません。 – xlm

関連する問題