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 上右击》属性》安全中把权限清空,然后选择”从上级目录继承权限设置“。