ボタンをクリックしてコードを初めて実行すると、button1_Clickイベント(PDFを新しい場所にコピー)が完全に機能します。私はこれは間に2回実行することができるようにしたくない、明らかに2番目のボタンクリックでC#System.UnathorizedAccessExceptionが発生する
System.UnauthorizedAuthorizedAccessException: Access to the path "\share\drive....
:
しかし、ボタンを(同じテキストボックスのエントリを持つ)は、第2の時間をクリックすると、それは次のようなエラーがスローされますセッション、同じテキストボックスのエントリを指定します。それに取り組む前に、この例外エラーを修正したいと思います。誤ってパスを開いたままにしていますか?解決策を示すように更新
コード:
public static string Case_No;
namespace CEB_Process
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//===============================
// TEXT BOX ENTRY
//===============================
private void textBox1_TextChanged(object sender, EventArgs e)
{
Form1.Case_No = textBox1.Text;
}
//==============================
// CHECK if Direcotry Exists
//==============================
public void CreateIfMissing(string path)
{
if (!Directory.Exists(path))
{
DirectoryInfo di = Directory.CreateDirectory(path);
//Added
var permissions = new DirectoryInfo(path);
permissions.Attributes &= ~FileAttributes.ReadOnly;
MessageBox.Show("The directory was created successfully");
}
}
//=================================
// MOVE Violation PDF's Button Click
//==================================
private void button1_Click(object sender, EventArgs e)
{
//Declare Source path directory from text box entry
string sourcePath = string.Format(@"\\share\drive\etc{0}", Case_No);
string targetPath = string.Format(@"\\share\drive\etc{0}", Case_No);
try
{
//Call Method to Check/Create Path
CreateIfMissing(targetPath);
//Get TRAKiT Violation PDF's from source
foreach (var sourceFilePath in Directory.GetFiles(sourcePath, "*.pdf"))
{
string fileName = Path.GetFileName(sourceFilePath);
string destinationFilePath = Path.Combine(targetPath, fileName);
System.IO.File.Copy(sourceFilePath, destinationFilePath, true);
File.SetAttributes(destinationFilePath, FileAttributes.Normal);
}//End For Each Loop
MessageBox.Show("Files Copied Successfully!");
}//end try
catch (Exception x)
{
MessageBox.Show("The process failed", x.ToString());
}
}//End Button Module
}//End Namespace
}//End Class
問題には関係ありません: 'finally {} //リソースを解放しようとしました':空のfinallyブロックは何もしません! (リソースの解放はなく、ここに必要なものではありません...最後にこれを削除してください) –
私はそれがリソースを解放していると仮定しました。ありがとうございました。 – Tennis