0

フォルダーの .rar ファイルを作成するために c# コードを使用しています。

コード

string zipFileToWrite, folderPath;
zipFileToWrite = @"D:\jack.zip";
folderPath = @"D:\New folder";
System.Diagnostics.Process MyProcess = new System.Diagnostics.Process();
MyProcess.StartInfo.WorkingDirectory = @"D:\NetworkPathChecking\FileBackup\FileBackup\bin\Debug\App_Files\";
MyProcess.StartInfo.FileName = "winrar.exe";
MyProcess.StartInfo.Arguments = "a -r " + "\"" + zipFileToWrite + "\"" + " " + "\"" + folderPath + "\"";
MyProcess.Start();
MyProcess.WaitForExit();

ここで、フォルダーから .rar を作成するファイルのフィルターとして複数の拡張子を指定する必要があります。これどうやってするの?

4

1 に答える 1

0

この問題は、*.FileExtension でファイル リストを使用することによって解決されます。

手順

public static string RarFilesT(string rarPackagePath, Dictionary<int, string> accFiles)
{
   string error = "";
   try
   {
       string[] files = new string[accFiles.Count];
       int i = 0;
       foreach (var fList_item in accFiles)
       {
           files[i] = "\"" + fList_item.Value;
           i++;
       }
       string fileList = string.Join("\" ", files);
       fileList += "\"";
       System.Diagnostics.ProcessStartInfo sdp = new System.Diagnostics.ProcessStartInfo();
       string cmdArgs = string.Format("A {0} {1} -ep1 -r",
                String.Format("\"{0}\"", rarPackagePath),
                fileList);
       sdp.ErrorDialog = true;
       sdp.UseShellExecute = true;
       sdp.Arguments = cmdArgs;
       sdp.FileName = rarPath;//Winrar.exe path
       sdp.CreateNoWindow = false;
       sdp.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
       System.Diagnostics.Process process = System.Diagnostics.Process.Start(sdp);
       process.WaitForExit();
       error = "OK";
   }
   catch (Exception ex)
   {
       error = ex.Message;
   }
   return error;
}

呼び出し手順

private void btnSave_Click(object sender, EventArgs e)
{
    Dictionary<int, string> accFiles = new Dictionary<int, string>();
    accFiles.Add(1, @"D:\New folder\New folder\*.txt");
    accFiles.Add(2, @"D:\New folder\*.html");
    RarFilesT(@"D:\test.rar",accFiles );
}

これで、この手順は正常に機能します。選択した拡張子を持つフォルダーの完全バックアップが取得されます。

于 2013-04-15T09:12:14.627 に答える