[英]How can I create a tool's event at the same time while creating a tool? (C#, windows forms)
[英]Can i create 2 SubDirectories at same time C#?
我想創建一個像這樣的簡單目錄樹,雖然它不需要具有相同的名稱
我是否需要像這樣寫:
Directory.CreateDirectory("/home/XXX/Documents/Users/Pepe/datos/");
Directory.CreateDirectory("/home/XXX/Documents/Users/Juan");
有沒有選擇在同一個字符串路徑中創建“Pepe”和“Juan”?
要發布答案並提供替代方案,如果您只想使用CreateDirectory
方法,那么您可以使用一個方法來獲取params string[]
的參數,並在調用該方法時傳入目錄。
代碼看起來像這樣
private static void CreateDirectories(params string[] directories)
{
foreach (string directory in directories)
{
Directory.CreateDirectory(directory);
}
}
你可以用它來調用它
CreateDirectories("/home/XXX/Documents/Users/Pepe/datos/", "/home/XXX/Documents/Users/Juan");
或者你可以傳入一個字符串數組
CreateDirectories(new [] { "/home/XXX/Documents/Users/Pepe/datos/", "/home/XXX/Documents/Users/Juan"});
我減少了上面的System.IO
方法的使用,然后我接口允許我創建模擬的類,然后單元測試我創建的軟件而不執行I / O操作,這帶來了一個你可以使用上面的場景除了它不會是靜態的。
BCL沒有任何東西可以做到這一點; 你必須為每一個調用CreateDirectory
。
如果你有一組目錄路徑,你可以把它放在一個循環中:
foreach (string dirPath in directoryPaths)
{
Directory.CreateDirectory(dirPath);
}
聽起來你有一個共同的根目錄:
/home/XXX/Documents/Users
並且您想從那里添加子目錄。 如果是這種情況,如果目標是只需要引用子目錄,那么我會采用@ColinM的方法,但稍微修改它如下:
private static void CreateDirectories(string directoryRoot, params string[] directories)
{
foreach (string directory in directories)
{
Directory.CreateDirectory(Path.Combine(directoryRoot, directory));
}
}
現在當你調用它時,你只需要提一次根
CreateDirectories("/home/XXX/Documents/Users", "Pepe/datos/", "Juan");
約的好處Path.Combine
是,你不必擔心有一個斜線/
要么是在尾隨directoryRoot
或領導在任何的directories
--IT將確保它到底是正確格式化。
當然,如果你采用這種方法,你需要決定當directories
為空時會發生什么 - 你創建了directoryRoot(假設它還沒有),你是拋出錯誤,還是只返回?
你可以創建像。
System.IO.Directory.CreateDirectory( “C:/方向1 /方向2 / DIR3”);
認為c:drive的根目錄中沒有Dir1。
它將創建文件夾結構,如Dir1 - > Dir2 - > Dir3。
如果Die1在那里,那么它將創建子目錄的其余部分。
多級相同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.