JThompson
New Member
Attempting to export to a CSV file. I have a dialog allowing the user to set the file name that is saved to a variable "fName." The app then checks for the extension ".csv."
If it is not there (or something else) it appends it.
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
Here is the code I use to get the correct directory:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
I get the "java.io.FileNotFoundException: /storage/emulated/0/Download/FuelExpenses.csv: open failed: EACCES (Permission denied)" error while executing this line
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
If I leave off the ".csv" extension, no error.
If I hard code the name into the "SaveCSV2" file name, no error.
If I hard code the name into the variable fName (fName="Export.csv") then pass the variable to the SaveCSV2 function, no error.
It's only when I append the extension in code that I receive the error. Additionally I've tried to using the StringBuilder object to concatenate the two strings, same error.
My manifest does contain the 'android:requestLegacyExternalStorage="true"' attribute and I have tried setting the "targetSdkVersion" to 28, 31, and 33. Same error.
I'm a long-suffering VBA programmer and I'm new to B4A, so I know I'm missing something obvious.
Thanks in advance for any assistance.
			
			If it is not there (or something else) it appends it.
			
				B4X:
			
		
		
		''//Remove Everything after '.' including the '.'  - Even if the user adds the ".csv"
        Dim DotPosition As Int
        DotPosition =  fName.IndexOf(".")
        If DotPosition>-1 Then
            'Dim NewName As String
            fName = fName.SubString2(0,DotPosition) & ".csv"
            Log(fName)
        Else
            fName = fName & ".csv"
        End IfHere is the code I use to get the correct directory:
			
				B4X:
			
		
		
		Dim rp As RuntimePermissions
        rp.GetSafeDirDefaultExternal("Download")
        Dim fileDir As String = File.DirRootExternal & "/Download"
        If File.IsDirectory(File.DirRootExternal , "Download") = False Then
            File.MakeDir(File.DirRootExternal, "Download")
        End IfI get the "java.io.FileNotFoundException: /storage/emulated/0/Download/FuelExpenses.csv: open failed: EACCES (Permission denied)" error while executing this line
			
				B4X:
			
		
		
		StrinUtil.SaveCSV2(fileDir, fName, ",", ListData,ListHeader)If I leave off the ".csv" extension, no error.
If I hard code the name into the "SaveCSV2" file name, no error.
If I hard code the name into the variable fName (fName="Export.csv") then pass the variable to the SaveCSV2 function, no error.
It's only when I append the extension in code that I receive the error. Additionally I've tried to using the StringBuilder object to concatenate the two strings, same error.
My manifest does contain the 'android:requestLegacyExternalStorage="true"' attribute and I have tried setting the "targetSdkVersion" to 28, 31, and 33. Same error.
I'm a long-suffering VBA programmer and I'm new to B4A, so I know I'm missing something obvious.
Thanks in advance for any assistance.
 
				 
 
		 
 
		 
 
		