Tôi có một tập hợp các tệp có đường dẫn đầy đủ (root/test/thing1/thing2/file.txt). Tôi muốn foreach
trên bộ sưu tập này và thả tệp vào vị trí được xác định trong đường dẫn, tuy nhiên, nếu một số thư mục không tồn tại, tôi muốn chúng được tạo tự động tuyệt vời. Chương trình của tôi có "vị trí thả" mặc định, chẳng hạn như z:/
. "Vị trí thả" bắt đầu trống, vì vậy trong ví dụ trên, mục đầu tiên sẽ tự động tạo các thư mục cần thiết để tạo z:/root/test/thing1/thing2/file.txt
. Tôi có thể làm cái này như thế nào?Tự động tạo thư mục từ đường dẫn dài
10
A
Trả lời
16
foreach (var relativePath in files.Keys)
{
var fullPath = Path.Combine(defaultLocation, relativePath);
var directory = Path.GetDirectoryName(fullPath);
Directory.CreateDirectory(directory);
saveFile(fullPath, files[relativePath]);
}
nơi tệp là IDictionary<string, object>
.
10
string somepath = @"z:/root/test/thing1/thing2/file.txt";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName((somepath));
3
Kiểm tra IO namespace (Directory, Path), tôi nghĩ rằng họ sẽ giúp bạn
using System.IO
Sau đó kiểm tra xem nó ..
string fileName [email protected]"d:/root/test/thing1/thing2/file.txt";
string directory = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
7
Directory.CreateDirectory("/root/...")
Tạo tất cả các thư mục và thư mục con trong đường dẫn được chỉ định
1
string filename = "c:\\temp\\wibble\\wobble\\file.txt";
string dir = Path.GetDirectoryName(filename);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.Create(filename);
với xử lý ngoại lệ phù hợp, tất nhiên.
0
Tôi đã tìm thấy đặt "vị trí mặc định" khi bắt đầu thực hiện để hữu ích và giảm một chút mã dự phòng (ví dụ: Path.Combine(defaultLocation, relativePath)
).
Ví dụ:
var defaultLocation = "z:/";
Directory.SetCurrentDirectory(defaultLocation);
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
Các vấn đề liên quan
- 1. C++ cách tạo thư mục từ đường dẫn
- 2. Nhận tên thư mục từ đường dẫn
- 3. Thêm thư mục vào đường dẫn đường dẫn nội dung?
- 4. Tạo tệp từ đường dẫn, tạo thư mục con nếu chúng không tồn tại
- 5. Đường dẫn của thư mục địa phương
- 6. Đặt thư mục cho đường dẫn lớp
- 7. Lưu tệp và tự động tạo thư mục
- 8. hoàn thành tự động đường dẫn vim, làm cách nào để nhập một thư mục?
- 9. Cách lấy thành phần đường dẫn/thư mục từ NSURL?
- 10. Lấy (các) Tên Thư mục từ Đường dẫn
- 11. Delphi 7 lấy tên thư mục từ đường dẫn
- 12. Nút js Nhận đường dẫn thư mục từ một tệp
- 13. Lấy tên thư mục từ một đường dẫn
- 14. Thêm thư mục vào đường dẫn tomcat
- 15. Đường dẫn thư mục makefile GNU chung
- 16. Lấy đường dẫn thư mục người dùng
- 17. Nhận đường dẫn thư mục hiện tại
- 18. Codeigniter - tự động nhận đường dẫn tương đối/tuyệt đối bên ngoài thư mục ứng dụng
- 19. Python - Trích xuất đường dẫn thư mục từ đường dẫn tập tin
- 20. delphi nhận đường dẫn thư mục
- 21. loại đường dẫn thư mục với argparse
- 22. Chọn đường dẫn thư mục với savefileDialog
- 23. PHP đường dẫn thư mục đệ quy
- 24. Làm thế nào để tạo nhiều thư mục từ một đường dẫn đầy đủ trong C#?
- 25. lỗi bash mkdir và cp trên đường dẫn biến "không thể tạo thư mục: Không có tệp hoặc thư mục"
- 26. Tìm thư mục con của đường dẫn tệp từ bảng đường dẫn tệp bằng chức năng "LIKE" của SQL Server
- 27. Thêm thư mục vào đường dẫn tải trong Rails?
- 28. Cách lấy đường dẫn thư mục thực hiện trong java
- 29. Cách truy xuất đường dẫn thư mục Oracle?
- 30. Tự động trích xuất đường dẫn -Tôi gcc cho mã nguồn lập chỉ mục trong Emacs
Đồng ý, không cần phải kiểm tra xem thư mục tồn tại như nó thực hiện điều này trong nội bộ. – Squirrel