cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
danielodievich Frequent Visitor
Frequent Visitor

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

Accepted Solutions
Highlighted
abbasabdulla Frequent Visitor
Frequent Visitor

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

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
Highlighted
abbasabdulla Frequent Visitor
Frequent Visitor

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

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

Helpful resources

Announcements
New Ranks and Rank Icons in 2020

New Ranks and Rank Icons in 2020

Read the announcement for more information!

New Kudos Given Badges Coming

New Kudos Given Badges Coming

We're rolling out new Kudos Given badges. Find out how many Kudos you've given.

November 2019 Community Highlights

November 2019 Community Highlights

Get an overview of the events and great community content from November.

Power Platform World Tour

Power Platform World Tour

Find out where you can attend!

Top Solution Authors
Top Kudoed Authors (Last 30 Days)