java拒絕訪問
cmd輸入下面兩條命令:
takeown /f [拒絕訪問的文件路徑] /r /d y
echo Y|cacls [拒絕訪問的文件路徑] /g %username%:F
然後就可以完全控制了。
望採納!
B. java我用流來復制文件可是老是拒絕訪問怎麼回事
兄弟,首先window環境下文件目錄是不能用Java流來讀取的,目錄是使用mkdir或者mkdirs方法創建的。
第二你復制的時候BufferedInputStream的read() 每次是讀取一個位元組,你用int來接收,這樣會隱式轉型成4個位元組,復制的文件會不對。
第三文件讀取的截至調試是返回的 -1 , 不是 1,也不是0
第四當然能正確關閉流這是對的,但是緩存流關閉流的時候,並沒有關閉FileInputStream和FileOutputStream,所以建議在關閉緩存流之前先關閉掉FileInputStream和FileOutputStream。
文件復制我是這么寫的:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MyFile extends File {
private List<MyFile> childFiles;
public MyFile(String pathname) {
super(pathname);
}
public MyFile(File file) {
super(file.getAbsolutePath());
}
public List<MyFile> getChildFiles() {
return childFiles;
}
public void setChildFiles(List<MyFile> childFiles) {
this.childFiles = childFiles;
}
}
------------------------------------------------------------------------------
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
public class TestFile {
@Test
public void fileTest() {
MyFile myFile = new MyFile("D:\\迅雷下載");
getAllChildFiles(myFile);
printFile(myFile);
}
@Test
public void FileTest() {
MyFile srcFile = new MyFile("D:\\迅雷下載\\activiti-6.0.0");
MyFile targetFile = new MyFile("D:\\迅雷下載\\activiti-6.0.1");
try {
getAllChildFiles(srcFile);
File(srcFile,targetFile);
} catch (Exception e) {
e.printStackTrace();
}
}
public void getAllChildFiles(MyFile myFile) {
myFile.setWritable(true,true);
File[] files = myFile.listFiles();
List<MyFile> childFiles = new ArrayList<MyFile>();
for (File file : files) {
MyFile mf = new MyFile(file);
childFiles.add(mf);
if(mf.isDirectory()) {
getAllChildFiles(mf);
}
}
myFile.setChildFiles(childFiles);
}
public void printFile(MyFile myFile) {
System.out.println(myFile.getAbsolutePath());
System.out.println("====>"+myFile.getName());
List<MyFile> childFiles = myFile.getChildFiles();
if(childFiles != null && childFiles.size() > 0) {
for (MyFile mf : childFiles) {
printFile(mf);
}
}
}
public void File(MyFile srcFile,MyFile targetFile) throws Exception {
if(srcFile.isDirectory()) {
targetFile.mkdirs();
}else {
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024];
int len = 0;
while((len = fis.read(buffer)) != -1) {
fos.write(buffer,0,len);
}
fis.close();
fos.close();
}
List<MyFile> srcChildFiles = srcFile.getChildFiles();
List<MyFile> targetChidFiles = new ArrayList<MyFile>();
if(srcChildFiles != null && srcChildFiles.size() > 0) {
for (MyFile srcf : srcChildFiles) {
StringBuilder targFilePath = new StringBuilder(targetFile.getAbsolutePath());
targFilePath.append(MyFile.separator).append(srcf.getName());
System.out.println(targFilePath.toString());
MyFile targf = new MyFile(targFilePath.toString());
targetChidFiles.add(targf);
File(srcf,targf);
}
}
targetFile.setChildFiles(targetChidFiles);
}
}
希望能幫助到你,謝謝!!
C. 用cmd運行Java是總是提示拒絕訪問
把這個java文件移到D盤或者其他路徑下,總之別是C盤根目錄。然後再編譯試試。
出錯原因應該是許可權問題。可能不是用管理員許可權運行cmd,所以沒有C盤的寫許可權
D. java向文件中寫入數據時為什麼會出現拒接訪問·
一般出現拒絕訪問的時候就是這個文件或者所在的目錄當前用戶沒有操作許可權,例如:將某些文件放入C盤中操作就極有可能出現這種情況。解決:
修改當前用戶的目錄許可權
換個路徑
E. 編譯java時顯示.class拒絕訪問
如果你用的是WIN8 以上的系統 嘗試 右鍵單擊 左下角的開始菜單的圖標 點擊「命令提示符(管理員)」 再執行編譯操作
F. java.io.FileNotFoundException: c:\ddtemp.txt (拒絕訪問。)
原因可能有幾種,
1,許可權問題。因為,win7的許可權問題很復雜,
2,防火牆,問題,win7防火牆,你看允許java通過了嗎。
3,java,版本問題。由於您用的是java 5這個版本,可能還不支持win7。
建議,你先查看許可權是否擁有,再查看,防火牆的設置是否攔截了java。
最後建議你用較新的 java 6,或這java 7. 既有更多更好的功能,又能對最新的系統有一個更穩頂的支持。
G. JAVA安裝過程中出現拒絕訪問!用管理員身份運行也這樣!
你用管理員身份都無法就奇怪了,可能文件夾你手工設置過許可權吧,試下重置文件夾的許可權。
比如,你的 D:\dev 目錄下有 D:\dev\java 還有 D:\dev\app,假設它們的許可權設置不相同,我們同時選中這兩個文件夾,右擊>屬性>安全,這時會提示兩個文件夾許可權不同,是否要重置,確定讓它重置到默認值,如果你在 D:\dev 上右擊》屬性》安全中把許可權清空,然後選擇」從上級目錄繼承許可權設置「。