Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes! Register now.

Reply
Anonymous
Not applicable

How to check for CSV file existence before trying to load it with File.Contents?

Hello everyone,

 

 

I build a PowerBI file that targets certain set of CSV files. 

 

I have defined a text parameter called ReportDataFolderPath that defines the folder in which the CSV files exist.

 

I load the data into Csv.Document data source using File.Contents like that:

 

 

let
    Source = Csv.Document(File.Contents(ReportDataFolderPath & "\subfolder\filewithdata.csv"),[Delimiter=",", Columns=18, Encoding=65001, QuoteStyle=QuoteStyle.Csv]),
    #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
... the rest is snipped in #"Changed Type3"

 

 

This works very well when "filewithdata.csv" exists.

 

 

However, sometimes the input set of CSV files does not have "filewithdata.csv". This causes template-to-report loading to fail.

 

I would like to write some sort of check that validates that "filewithdata.csv" is present in the file system before attempting to load it into Csv.Document function. Can someone suggest a way to do it?

 

Thank you

Daniel

 

1 ACCEPTED SOLUTION
abbasabdulla
Frequent Visitor

Hi,

Can you give this code a try!

 

let
    Source = Folder.Files("ReportDataFolderPath & "\subfolder\"),
    #"Filtered Rows" = Table.SelectRows(Source, each ([Name] = "filewithdata.csv")),
    #"Counted Rows" = if Table.RowCount(#"Filtered Rows")= 1 then
let
SourceFile = Csv.Document(File.Contents("ReportDataFolderPath & "\subfolder\filewithdata.csv"),[Delimiter=",", Columns=18, Encoding=65001, QuoteStyle=QuoteStyle.Csv]),
    #"Promoted Headers" = Table.PromoteHeaders(SourceFile, [PromoteAllScalars=true])
in
#"Promoted Headers" 
else 
"File is not found"
in
    #"Counted Rows"

OR check this post it has more sophisticated method: https://community.powerbi.com/t5/Integrations-with-Files-and/How-to-check-if-a-file-exists/m-p/66259...

View solution in original post

1 REPLY 1
abbasabdulla
Frequent Visitor

Hi,

Can you give this code a try!

 

let
    Source = Folder.Files("ReportDataFolderPath & "\subfolder\"),
    #"Filtered Rows" = Table.SelectRows(Source, each ([Name] = "filewithdata.csv")),
    #"Counted Rows" = if Table.RowCount(#"Filtered Rows")= 1 then
let
SourceFile = Csv.Document(File.Contents("ReportDataFolderPath & "\subfolder\filewithdata.csv"),[Delimiter=",", Columns=18, Encoding=65001, QuoteStyle=QuoteStyle.Csv]),
    #"Promoted Headers" = Table.PromoteHeaders(SourceFile, [PromoteAllScalars=true])
in
#"Promoted Headers" 
else 
"File is not found"
in
    #"Counted Rows"

OR check this post it has more sophisticated method: https://community.powerbi.com/t5/Integrations-with-Files-and/How-to-check-if-a-file-exists/m-p/66259...

Helpful resources

Announcements
September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors