こんにちは私はWPFプラットフォームで作業しています。 Unzipのようなファイル操作を実行し、ボタンを押してファイルを移動したい。ボタンを押したときにプログラムを実行して、UnzipAndCreateUpdatePackage
メソッドを実行し、操作が完了するのを待ってから、Move Method
を実行してから、私に確認を提供します。特定のファイル操作が完了するまでファイル操作を保持する
は私が行いたいこと: プログラムウェイトを作る解凍が完了した後、解凍したフォルダからデータを移動するまで。現在のプログラムでは、解凍プロセスが完了しなかったため、例外が見つからないファイルが表示されます。
私は達成することができますどのようにこの
現在、私のコードは次のようになります。ボタンをタップイベントコード:
private void Button_Click(object sender, RoutedEventArgs e)
{
List<string> FileNames = new List<string>();
FileNames.Add("ApplicationData.zip");
FileNames.Add("MapData.zip");
FileNames.Add("LicenseData.zip");
WithoutExtentionNameList = new List<string>();
WithoutExtentionNameList.AddRange(FileNames);
for (int item = 0; item < WithoutExtentionNameList.Count; item++)
{
WithoutExtentionNameList[item] = WithoutExtentionNameList[item].Replace(".zip", " ").TrimEnd();
}
UnZipAndCreateUpdatePackage(FileNames);
moveData("LicenseTest 7.txt");
}
UnZipAndCreateUpdatePackageメソッドコード:
private void UnZipAndCreateUpdatePackage(List<string> FileNameList)
{
string CheckPreviousData = System.IO.Path.Combine(fileDestination, WithoutExtentionNameList[0]);
if (System.IO.Directory.Exists(CheckPreviousData))
{
DeleteDirectory(CheckPreviousData);
}
if (!System.IO.Directory.Exists(CheckPreviousData))
{
System.IO.Directory.CreateDirectory(CheckPreviousData);
}
foreach (var FileName in FileNameList)
{
if (FileName.Contains("Map"))
{
fileDestination = System.IO.Path.Combine(fileDestination, WithoutExtentionNameList[0]);
}
//create a source file path
sourceFile = System.IO.Path.Combine(fileLocation, FileName);
ZipFile.ExtractToDirectory(sourceFile, fileDestination);
}
fileDestination = @"C:\Users\adity\Desktop\MapUpdaterTemp";
}
Movedata方法:
private void moveData(string LicenseFileName)
{
//Now Map the file data as per Update Package
string MoveFrom = System.IO.Path.Combine(fileDestination, WithoutExtentionNameList[0], WithoutExtentionNameList[2], LicenseFileName);
string MoveTo = System.IO.Path.Combine(fileDestination, WithoutExtentionNameList[0], WithoutExtentionNameList[1], LicenseFileName);
System.IO.File.Move(MoveFrom, MoveTo);
}
どのような確認が欲しいですか?あなたが現在使っているコードの何が間違っていますか? 'MoveData()'の後に 'MessageBox.Show()'を呼び出すことができますか? – gilmishal
@gilmishal確認は問題ではありません。 Unzipが完了するまでプログラムを待機させ、解凍されたフォルダからデータを移動します。現在のプログラムでは、解凍プロセスが完了しなかったため、例外が見つからないファイルが表示されます。 –