![](/img/trans.png)
[英]Restrict acces to a folder(and all its files and subdirectories) stored on a sd card C#
[英]C# - Unzip all files in directory and its subdirectories
我嘗試將各自目錄/子目錄中的所有 ZIP 檔案提取到各自的目錄/子目錄中。
結構示例:
-Root-Directory
- File.txt
- Fi.docx
- Files.zip
- TestEx.jpg
- Example.png
- /Subdirectory_1
- ExampleData.txt
- Example.xlsx
- Archive1.zip
- ExampleData_1.txt
- ExampleData_2.txt
- Archiv2.zip
- Data1.txt
- Data2.txt
- ...
- /Subdirectory_2
- T_1.txt
- ABC.xlsx
- ZippedFiles.zip
- Imag_1.jpeg
- Imag_2.gif
- ZipFiles.zip
- Music.wav
- Sound.mp3
它應該是什么樣子:
-Root-Directory
- File.txt
- Fi.docx
- TestEx.jpg
- Example.png
- /Subdirectory_1
- ExampleData.txt
- Example.xlsx
- ExampleData_1.txt
- ExampleData_2.txt
- Data1.txt
- Data2.txt
- ...
- /Subdirectory_2
- T_1.txt
- ABC.xlsx
- Imag_1.jpeg
- Imag_2.gif
- Music.wav
- Sound.mp3
我的嘗試:
private static void unzipAllFiles(DirectoryInfo directoryPath)
{
foreach( DirectoryInfo dirs in directoryPath.GetDirectories() )
{
foreach (FileInfo file in dirs.GetFiles())
{
if(Path.GetExtension(file.FullName).Equals(".zip"))
{
//Console.WriteLine(file.FullName);
string zPath = @"C:\Program Files\7-Zip\7z.exe";// change the path and give yours
try
{
ProcessStartInfo pro = new ProcessStartInfo();
pro.WindowStyle = ProcessWindowStyle.Hidden;
pro.FileName = zPath;
pro.Arguments = "x -r -aou \"" + file.FullName;
Process process = Process.Start(pro);
process.WaitForExit();
}
catch (System.Exception Ex)
{
//DO logic here
}
}
}
}
}
這里有幾件事:
cmd.exe
的打開?cmd.exe
打印出處理了一些提取,但沒有任何反應。 如何解決?提前致謝。
嘗試編寫一個提取 zip 的方法,然后迭代其提取的內容以查找並提取任何其他 zip 文件。 您可以使用 ZipFile、FileInfo 和 DirectoryInfo 類。 這是一些偽代碼...
func extractZip
// extract zip file
// call extractZipsFromDir using base extract path
func extractZipsFromDir
// get list of all .zip files in cur dir
// while list.len > 0
// for each zip file
// extract to curr dir
// delete the zip
// set list of zips to new list of all .zip files in cur dir which will pick up any newly extracted zips
// get list of all directories in cur dir (don't include sub directories)
// for each dir in list
// call extractZipsFromDir with iterated dir
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.