Tôi không thể nhận được hàm tạo đó hoạt động. Tuy nhiên, điều này dường như hoạt động:
# $temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($null)
$resourceFiles.AddRange($temp)
Bạn cũng có thể chuyển một số nguyên trong hàm tạo để đặt công suất ban đầu.
Bạn có ý gì khi nói rằng bạn muốn liệt kê các tệp? Tại sao bạn không thể lọc các giá trị mong muốn vào một mảng mới?
Edit:
Dường như bạn có thể sử dụng các nhà xây dựng mảng như thế này:
$resourceFiles = New-Object System.Collections.ArrayList(,$someArray)
Lưu ý các dấu phẩy. Tôi tin rằng những gì đang xảy ra là khi bạn gọi một phương thức .NET, bạn luôn chuyển các tham số như một mảng. PowerShell bỏ gói mảng đó và chuyển nó vào phương thức như các tham số riêng biệt. Trong trường hợp này, chúng tôi không muốn PowerShell giải nén mảng; chúng tôi muốn chuyển mảng thành một đơn vị duy nhất. Bây giờ, toán tử dấu phẩy tạo mảng. Vì vậy, PowerShell unpacks mảng, sau đó chúng tôi tạo ra các mảng một lần nữa với các nhà điều hành dấu phẩy. Tôi nghĩ đó là những gì đang diễn ra.
Nguồn
2009-03-06 12:24:47
Làm cách nào để lọc các mục? –
@Mark, bạn có thể cung cấp thêm một số thông tin về cách bạn muốn quyết định loại tệp nào cần xóa không. Ngoài ra, Get-ResourceFiles sẽ trả về những gì? –
Tôi có một tệp văn bản có đường dẫn tương đối trong đó. Sau khi tôi đã liệt kê một thư mục, tôi muốn kiểm tra xem nó có tồn tại trong tệp hay không và nếu nó không tồn tại, hãy xóa nó khỏi danh sách. Get-ResourceFiles chỉ trả lại đường dẫn dưới dạng một chuỗi –