Tôi muốn tạo thư mục tạm thời duy nhất trong Windows từ một số mã C (không phải C++ hoặc C#). Tôi muốn làm điều này để tôi có thể đặt một số tệp tạm thời trong thư mục và sau đó xóa chúng một cách dễ dàng khi tôi hoàn tất (bằng cách xóa thư mục đệ quy).Tạo thư mục tạm thời duy nhất từ C tinh khiết trong cửa sổ
Tôi về cơ bản đang tìm kiếm một hàm tương đương với chức năng linux mkdtemp
. Có câu trả lời C# here và câu trả lời trên this question đề xuất sử dụng Boost. Nhưng vì tôi đang sử dụng C, các giải pháp đó không hoạt động cho tôi.
Điều tốt nhất tôi đã có thể đưa ra cho đến nay là sử dụng GetTempFileName
tiếp theo CreateDirectory
, nhưng vấn đề ở đó là nếu tôi hỏi GetTempFileName
để tạo ra một tên file duy nhất, điều này cũng tạo tệp (mà tôi không muốn, vì tôi muốn tạo thư mục thay thế).
Relatedly, có GetTempPath
, mà trả về vị trí của thư mục tạm của người dùng từ môi trường biến - nhưng kể từ khi tôi muốn tạo thư mục của riêng tôi mà tôi có thể an toàn xóa sau, tôi vẫn cần phải tạo ra một thư mục bên trong bất kỳ con đường nào nó sẽ trở lại.
Có vẻ như nếu tôi muốn tạo một thư mục duy nhất, tôi sẽ phải tạo tạo tệp tạm thời, lấy tên, xóa tệp và sau đó tạo thư mục có cùng tên - nghe có vẻ rất lộn xộn . Bất kỳ ý tưởng nào khác?
Ý tưởng trong đoạn cuối cùng của bạn sẽ không hoạt động - nó sẽ tùy thuộc vào điều kiện chủng tộc. –