Skip to content

Folder convention differs between "Custom" and "Default" file save location setting #1147

@bobthefairycat

Description

@bobthefairycat

Problem

Behaviour for saving recording files differs (unexpectedly) between "Default" and "Custom" file locations. In "Default" file location settings, the GUI backend generates subfolders based on the unique session name, allowing the same overall top-level folder to be used across multiple sessions. When using "Custom" settings, the user is required to manually create a new subfolder for each session themselves.

The issue source is likely at
OpenBCI_GUI/DataLogger.pde

public void setBfWriterFolder(String _folderName, String _folderPath) {
    fileWriterBF.setBrainFlowStreamerFolderName(_folderName, _folderPath);
}
public void setBfWriterDefaultFolder() {
    fileWriterBF.setBrainFlowStreamerFolderName(sessionName, settings.getSessionPath());
}

Where under setBfWriterDefaultFolder, the sessionName variable is used to generate new subfolders, but only the user-provided _folderName is used in setBfWriterFolder.

Additionally, the GUI dialog box when selecting a Custom folder is confusing as the popup asks for a "file name" rather than a folder, and the entered "file name" is actually generated as a folder.

For now, I will just change the hardcoded default directory (so that we can deploy on a set of educational machines for student use).

Expected

Ideally, file organization paradigms would be identical when saving through "Default" folder locations and "Custom" selected folder locations. Session name information should be used to automatically generate subfolders in the "Custom" user-selected folder.

A few nice-to-haves:

  • Being able to change the Default folder location to persist across sessions (I tried locally, but my Java knowledge is simply nonexistent so I gave up) via some config file or setting in the GUI.
  • Alternatively, option to persist Custom folder location across sessions (after closing and reopening the software).

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions