workspace remove-group fails with FNFE
I happen to have a METS with files not under the conventional fileGrp directory. Upon trying `ocrd workspace remove-group -fr GRP` I then get:
```
  File "ocrd/workspace.py", line 241, in remove_file_group
    if Path(file_dir).is_dir() and not listdir(file_dir):
FileNotFoundError: [Errno 2] No such file or directory: ''
```

Digging into the code…
https://github.com/OCR-D/core/blob/061bae37f79aaac5aea64cf9afb8e1429b8243f5/ocrd/ocrd/workspace.py#L236-L253

…I believe the culprit is that `dirname` can give you empty strings when you have no directory component (unlike some `Path` functions, which will yield `.`). So the simplest fix would be to just add an extra check `file_dir and` in L252.

diff --git a/ocrd/ocrd/workspace.py b/ocrd/ocrd/workspace.py
index 0b69f2a5..7bfb38a2 100644
--- a/ocrd/ocrd/workspace.py
+++ b/ocrd/ocrd/workspace.py
@@ -238,7 +238,9 @@ class Workspace():
             for f in self.mets.find_files(fileGrp=USE):
                 self.remove_file(f, force=force, keep_file=keep_files, page_recursive=page_recursive, page_same_group=page_same_group)
                 if f.local_filename:
-                    file_dirs.append(path.dirname(f.local_filename))
+                    f_dir = path.dirname(f.local_filename)
+                    if f_dir:
+                        file_dirs.append(f_dir)
 
         self.mets.remove_file_group(USE, force=force)
 
diff --git a/tests/test_workspace.py b/tests/test_workspace.py
index b6202090..b5516afa 100644
--- a/tests/test_workspace.py
+++ b/tests/test_workspace.py
@@ -210,6 +210,16 @@ class TestWorkspace(TestCase):
             workspace.remove_file_group('OCR-D-IMG', recursive=True)
             self.assertFalse(exists(join(tempdir, 'OCR-D-IMG')))
 
+    def test_remove_file_group_flat(self):
+        """
+        https://github.com/OCR-D/core/issues/728
+        """
+        with pushd_popd(tempdir=True) as tempdir:
+            workspace = self.resolver.workspace_from_nothing(directory=tempdir)
+            f1 = Path(workspace.add_file('FOO', ID='foo', mimetype='foo/bar', local_filename='file.ext', content='foo', pageId=None).url)
+            assert f1.exists()
+            workspace.remove_file_group('FOO', recursive=True)
+
     def test_remove_file_page_recursive(self):
         with copy_of_directory(assets.path_to('kant_aufklaerung_1784-complex/data')) as tempdir:
             with pushd_popd(tempdir):
['ocrd/ocrd/workspace.py', 'tests/test_workspace.py']