2013-10-24 103 views
1

運行以下腳本移動文件時遇到了java.io.FileNotFoundException: C:\Users\520\Desktop\Thing (Access is denied)錯誤。這是否意味着我應該在管理員權限下運行我的IDE?java.io.FileNotFoundException(訪問被拒絕)以靜態方法移動文件

public static void moveFiles(){ 
     InputStream inStream = null; 
     OutputStream outStream = null; 
     try{ 
      File afile = new File("C:\\Users\\520\\Desktop\\hey.txt"); // Gotta specify initial path. Consider adding an input for this 
      File bfile = new File("C:\\Users\\520\\Desktop\\Thing"); 

      inStream = new FileInputStream(afile); 
      outStream = new FileOutputStream(bfile); 

      byte[] buffer = new byte[1024]; 

      int length; // copy the file content in bytes 
      while((length = inStream.read(buffer)) > 0){ 
       outStream.write(buffer, 0, length); 
      } 
      inStream.close(); 
      outStream.close(); 

      afile.delete(); 
      System.out.println("File was copied successfully!"); 
     }catch(IOException e){ 
      e.printStackTrace(); 
     } 
    } 
+0

在嘗試以管理員身份執行操作之前,請確保Windows具有讀取授予該文件及其文件夾的權限。 –

+0

看來我已經解決了這個問題。我只是在'/ Thing /'中創建了一個新的'.txt'文件,然而,它似乎也讓我誤解了這個腳本實際上做了什麼。我想將一個文件移動到一個文件夾,而不是真的替換一個文件。有沒有任何解決方法呢? – theGreenCabbage

回答

0

使用此調整目標文件對象,因此,如果它是一個目錄下,它就會在該目錄中使用的源文件的名稱。

if (bfile.isDirectory()) bfile = new File(bfile, afile.getName());