相关疑难解决方法(0)

Java Tree用于表示路径列表中的文件系统(files/dir)

我有这样的路径列表

/mnt/sdcard/folder1/a/b/file1
/mnt/sdcard/folder1/a/b/file2
/mnt/sdcard/folder1/a/b/file3
/mnt/sdcard/folder1/a/b/file4
/mnt/sdcard/folder1/a/b/file5
/mnt/sdcard/folder1/e/c/file6
/mnt/sdcard/folder2/d/file7
/mnt/sdcard/folder2/d/file8
/mnt/sdcard/file9
Run Code Online (Sandbox Code Playgroud)

因此,从这个路径列表(Stings)我需要创建一个Java Tree结构,其中包含文件夹作为节点,文件作为leaf(不会将空文件夹作为叶子).

我需要的是我想的是add方法,我向它们传递一个String(文件的路径),然后将它添加到树中的正确位置,如果它们不在那里,则创建正确的节点(Folder)

当我在节点和叶子列表上时,这个树结构将需要我获取节点列表(但我认为这将是树的常规功能)

我总是将字符串作为路径而不是真正的文件或文件夹.是否有可以使用的东西或源代码开始?

非常感谢你.

java filesystems tree data-structures

20
推荐指数
1
解决办法
3万
查看次数

从列表os文件路径构建树(Python) - 依赖于性能

嘿,我正在研究一个用python编写的高性能文件管理/分析工具包.我想创建一个函数,以树格式给我一个列表或类似的东西.像这个问题(java相关)

从:

dir/file
dir/dir2/file2
dir/file3
dir3/file4
dir3/file5
Run Code Online (Sandbox Code Playgroud)

注意:路径列表未排序

至:

dir/
    file
    dir2/
        file2
    file3
dir3/
    file4
    file5

[[dir, [file, [dir2, [file2]], file3]], [dir3, [file4, file5]]]
Run Code Online (Sandbox Code Playgroud)

这些方面的东西.我一直在玩一些想法,但没有一个提供我想要的速度.

注意:我已经有了路径列表,所以不用担心.该函数采用路径列表并给出树列表.

提前致谢

python tree recursion path

13
推荐指数
1
解决办法
8092
查看次数

Android MediaStore获取音乐文件的不同文件夹

寻找从Android MediaStore获取音乐文件的文件夹路径以获取输入目录路径的方法.所以实际上问题是如何对MediaStore进行正确的查询.

这是一个例子.我目前的代码:

String dirPath="/mnt/sdcard/Music/";
    String selection =MediaStore.Audio.Media.DATA +" like ?";
    String[] projection = {MediaStore.Audio.Media.DATA};    
    String[] selectionArgs={dirPath+"%"};
    Cursor cursor = this.managedQuery(
        MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
        projection,
        selection,
        selectionArgs,
        null);
    List<String> songs = new ArrayList<String>();
    while(cursor.moveToNext())
        songs.add(cursor.getString(0));
Run Code Online (Sandbox Code Playgroud)

结果我们在songs列表中会像:

/mnt/sdcard/Music/song1.mp3
/mnt/sdcard/Music/song2.mp3
/mnt/sdcard/Music/FolderWithSongs/song3.mp3
/mnt/sdcard/Music/AnotherFolderWithSongs/song4.mp3
/mnt/sdcard/Music/AndOneMoreFolder/song5.mp3
/mnt/sdcard/Music/AndOneMoreFolder/song6.mp3
/mnt/sdcard/Music/AndOneMoreFolder/song7.mp3
/mnt/sdcard/Music/AndOneMoreFolder/SomeFolder/song8.mp3
/mnt/sdcard/Music/AndOneMoreFolder/SomeFolder/song9.mp3
Run Code Online (Sandbox Code Playgroud)

我实际上在寻找什么 - 从这样得到这样的DISTINCT一级嵌套路径列表dirPath:

/mnt/sdcard/Music/FolderWithSongs/ 
/mnt/sdcard/Music/AnotherFolderWithSongs/ 
/mnt/sdcard/Music/AndOneMoreFolder/
Run Code Online (Sandbox Code Playgroud)

如果这里将是当前文件夹文件 - /mnt/sdcard/Music/song1.mp3并且 /mnt/sdcard/Music/song2.mp3- 它也是可接受的.

有任何想法吗?

编辑 我发现了两种可能的解决方案: Android按文件夹列出音乐并播放它们从字符串路径列表构造树结构 ,但我认为更好的方法可以解决这个问题.

sql sqlite android

5
推荐指数
2
解决办法
6115
查看次数

从"strings/that/are/paths"数组构建XML树(在Ruby中)

如果你有一个字符串路径数组,在Ruby中构建XML树的最佳方法是什么?


paths = [
  "nodeA1",
  "nodeA1/nodeB1/nodeC1",
  "nodeA1/nodeB1/nodeC1/nodeD1/nodeE1",
  "nodeA1/nodeB1/nodeC2",
  "nodeA1/nodeB2/nodeC2",
  "nodeA3/nodeB2/nodeC3"
]
xml = 
<nodeA1>
    <nodeB1>
        <nodeC1>
            <nodeD1>
                <nodeE1/>
            </nodeD1>
        </nodeC1>
        <nodeC2/>
    </nodeB1>
    <nodeB2>
        <nodeC2/>
        <nodeC3/>
    </nodeB2>
</nodeA1>
Run Code Online (Sandbox Code Playgroud)

我的第一个想法是将路径字符串拆分为一个数组,并将其深度和内容与前一个数组进行比较,但是如果我到达路径"nodeA1/nodeB1/nodeC1/nodeD1/nodeE1",当我回到"nodeA1/nodeB1/nodeC2",[1]节点是共同的祖先,但跟踪它是混乱的,至少我这样做的方式.

我也想让它递归,所以我可以在它自己的函数中处理每个嵌套级别,但还没有达到任何半通用的解决方案.

当你遇到这个问题时,你们常常做的任何想法或事情?

谢谢!长矛

ruby xml tree parsing

4
推荐指数
1
解决办法
1398
查看次数

如何在Java中将文件路径列表转换为hierachial树

有人可以给我一些指示吗 我想获取文件路径列表(仅字符串),然后转换为类似结构的层次树。因此,有两个任务,分析字符串以创建树,以及创建树或某种映射结构以将结果实际放入其中。(然后,第三个任务是解析树以在html中显示为树)

我正在使用Java 7,所以我假设我可以使用Paths来完成第一部分,但是却努力地找到一个清晰的算法。

C:\Music\Blur\Leisure
C:\Music\KateBush\WholeStory\Disc1
C:\Music\KateBush\WholeStory\Disc2
C:\Music\KateBush\The Kick Inside   
C:\Music\KateBush\The Dreaming
C:\MusicUnprocessed\Blue\ParkLife
Run Code Online (Sandbox Code Playgroud)

所以它给

C:\
   Music
      Blur 
          Leisure
      Kate Bush
          Whole Story
               Disc 1
               Disc 2
          The Kick Inside
          The Dreaming
    MusicProcessing
      Blur
         ParkLife
Run Code Online (Sandbox Code Playgroud)

java algorithm tree recursion nio

4
推荐指数
1
解决办法
4733
查看次数

C#中的递归迭代

我有一个自定义对象,其中包含返回根目录中所有目录和文件名的方法

string[] dirlist = obj.GetDirectories();

//which returns all dir names in root

string[] filelist = obj.GetFiles();

//which return all file names in root
Run Code Online (Sandbox Code Playgroud)

我无法修改这些方法.一旦我得到了dirlist,我如何获得其中所有子目录的列表以及子目录中的文件,忽略安全异常.它可以嵌套到多个级别..NET 4中有什么东西吗?

更新:string [] dirList也可以读作List dirlist.请提供一个使用.NET最新功能的解决方案

DirectoryOne  
 - SubDirOne  
 - SubDirTwo  
     - FileOne  
     - FileTwo
     - SubDirThree      
DirectoryTwo
DirectoryOne
Run Code Online (Sandbox Code Playgroud)

c# linq

3
推荐指数
1
解决办法
1404
查看次数

标签 统计

tree ×4

java ×2

recursion ×2

algorithm ×1

android ×1

c# ×1

data-structures ×1

filesystems ×1

linq ×1

nio ×1

parsing ×1

path ×1

python ×1

ruby ×1

sql ×1

sqlite ×1

xml ×1