2016-11-06 2 views
0

Win10에서 C# application.exe가 작동하지 않지만 내 Win7에서 작동했습니다. Win10에서 디버깅을 시도했는데 win7에서이 오류가 발생했습니다.C# DirectoryNotFoundException Windows 10 컴퓨터에서 처리되지 않았습니다.

using System; 
using System.Windows.Forms; 
using System.IO; 

namespace WindowsFormsApplication2 
{ 
public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

     string fullComputerName = Environment.MachineName; 

     //Create a Folder Path 
     string createFolderPath = @"C:\\Users\\" +fullComputerName+"\\Documents\\Cheques"; 

     //Create a File Inside of a Folder 
     string createTxtFile= createFolderPath + "\\ChequeForDeposit.TXT"; 

     try 
     { 
      if(!Directory.Exists(createFolderPath)) 
      { return; } 
      Directory.CreateDirectory(createFolderPath); 
     } 
     catch { } 
     finally { } 

     if(!File.Exists(createTxtFile)) 
     { File.Create(createTxtFile); }//The error is here 
    } 
} 
} 

내 win7 pc에서 확인하면 폴더와 텍스트 파일이 만들어집니다. 하지만 Win10에서는 그렇지 않습니다. 그것은 너무 이상합니다.

+0

, 내가 액세스가 거부 THK! – James

+0

win10에서 폴더 & 파일을 생성하지 않습니다. – Vincent

+0

catch (Exception e) {},이 예외가 발생했는지 확인하고 액세스가 거부 되었습니까? – James

답변

0

폴더를 만들려고하면 try/catch가 디렉토리 폴더가 존재하지 않을 수 있습니다 (예외를 생성 할 수 있음). 따라서 파일을 만들기 전에 즉시 폴더가 있는지 확인하십시오. 상태가 잘못되었습니다. 폴더가 존재하지 않으면 반환해야하며, 그렇지 않으면 생성해야합니다.

try 
{ 
    if(Directory.Exists(createFolderPath) && !File.Exists(createTxtFile)) 
    { 
     File.Create(createTxtFile); 
    } 
} 

권한 문제를 확인하십시오. 예 : 바탕 화면 폴더에 대한 권한을 확인하십시오. Windows 탐색기에서 바탕 화면 폴더를 마우스 오른쪽 단추로 클릭하고 속성을 선택하면 보안 탭으로 이동합니다. 해당 폴더에 대한 쓰기 권한이 있어야합니다.

+0

제안 된대로 코드를 변경하고 그것은 오류없이 잘 일했다.하지만 내 로컬 C에서 디렉터리를 확인할 때 createpathdirectory 실제로 만들어지지 않습니다. 내가 만든 폴더 및 파일을 볼 수 없습니다 .Windows 및 win10 테스트합니다 .Win10이이 경로가 만들어지지 않습니다. – Vincent

+0

권한 문제를 확인하십시오. 다른 디렉토리에서 시도 할 수 있습니까? 예 : D : \ NewFolder \ FileName.txt –

+0

C : \ NewFolder에서 시도했지만 아직 작동하지 않았습니다. 두 컴퓨터 모두에 D 디렉토리가 없습니다. 권한 문제를 변경하는 방법 – Vincent

0

폴더 C : \ Users \는 보호 시스템 폴더으로 설계되어 있다고 생각합니다. 하나는 관리자 권한으로 실행해야 또는 는 예를 들어, 다른 드라이브에서 파일을 만듭니다 오류가 catch 문에, 무엇

@"D:\Users\" +fullComputerName+"\Documents\Cheques" 
관련 문제