-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Great app! But 2 major problems!! #53
Comments
Hey, thanks for the feedback! It used to preserve folder structure when transferring entire folders. I removed this when I rewrote it and added the mobile versions because it is much more difficult to work with folders on Android and iOS than the desktop platforms. I'll add it to the list to investigate this again, but I'm not sure whether it's possible nor when I'll be able to get to it. One workaround is to compress a directory into a .zip file and send that, which will preserve the structure when unzipped. That turns it into one large file transfer and adds the time of compression/decompression, but it's an option. As for the iPhone going to sleep, I don't think there's anything I can do about that. Transfer resumption would require creating files with metadata about previous transfers on both devices. It gets complicated trying to determine whether a transfer failed or was deliberately cancelled, or whether the user intends to send the same file between the same two devices twice, and one of the things I like about Flying Carpet is that it leaves no traces of files that were transferred. The best I can recommend for now is to turn off sleep on your iPhone before starting a large transfer. |
Thank you for your prompt response.
In the meantime, as a temporary measure, I will attempt to disable the sleep function on both my PC and phone. This may serve as a countermeasure while I explore other potential solutions. |
I do think it's possible to create subdirectories on iOS and Android though I haven't tested it yet. I don't think I'll take up pause/resume. Previous experience makes me think it would be complicated to implement, unlikely to be stable, and I don't think much would be gained by it. Mirror mode is a great idea though, and provides a way to complete a failed folder transfer without re-sending everything. It wouldn't require metadata; the sending end could send the file details and the receiving end could reply if it already has the file at that path. That leaves the question of what to do when a file is only partially transferred and then a mirror is started, but it can just transfer the file anyway if the file sizes or hashes of the files don't match. Hashing would be time-consuming for large files but is probably worth it for mirroring. This will be a lot of work and I'm not sure when I'll take it up but it's good to have a plan. Will leave this issue open till I get to it. |
I was looking into local file transfer options after realising that https:/localsend/localsend is quite slow, and stumbled upon this one. It seems very interesting, but the folder structure preserving (without zipping) is a feature that I'd really need. My use-case is transferring relatively large folders between my two desktop machines. The source code of the Android version is in a different repository, is that correct? Otherwise I don't immediately see how dealing with folders would be tricky? |
@stefnotch Yes, the Android version is written in Kotlin and the code is not public. Android and iOS are stricter with what you can do with files and folders outside of your own app than the Desktop platforms. Hopefully it won't be a problem to select a folder and enumerate all the files and folders inside it, or to recreate a folder tree once the user has selected where they want it to go. For large files between two desktop machines though, you may just want to use SMB or something if they're on the same local network? It may be quicker to go through your router even if they're both wireless. It depends on the specific WiFi card and driver, but they seem to be slower when acting as hotspots than when connecting to an access point normally. |
I thought I was most of the way done with the Android and iOS versions, but when testing, I found that the Storage Access Framework I was using doesn't work well for recursing into a user-selected directory and checking for existing files. Will take some more time to develop a new strategy here. |
Never mind, I'd made another mistake. Current strategy works I think so folder mirroring for Android and iOS is mostly complete. |
Version 8 is out on the releases page. You can now send folders from iOS and Android, and directory structure will be preserved (relative to the top-most file). Flying Carpet also now checks whether a file of the same name, location, size, and contents already exists on the receiving end. If it does, it doesn't bother transferring the file. This means that partial, interrupted transfers of folders can be quickly resumed. @jackuars7 and @stefnotch, please try the new version if you're able and let me know how it works, thanks. |
I'll definitely give the new version a try. I'll be sure to share my feedback once I've had a chance to test it out. Thanks for keeping us in the loop! |
It doesn't preserve empty folders, does it? Localsend has the same issue localsend/localsend#554 for what it's worth |
Hi @spieglt I wanted to share my experience with the new version. Overall, there are definite improvements which is great to see. However, I encountered an issue with the folder transfer functionality. I attempted to send a folder with the following hierarchy. These were transferred from a Windows 11 to Android 13. I've attached the files for your reference: At the end of transfer, this was the result.
I tried it multiple times but faced the same result. |
Yep, apologies, I made a dumb mistake with the folder detection when sending from the desktop versions and rushed it out too quickly. Tomorrow will probably be the earliest I can fix unfortunately. Thanks for the catch. |
This should be fixed in version 8.0.1 on the releases page, please let me know if you're able to verify. Thanks again! |
@stefnotch It does not preserve empty folders. I'm not sure if this is something I'll add. If so, it would have to be in a later version. |
Closing this as I believe it to be fixed but please let me know if you find any more bugs. |
Thank you so much for developing this app for free. I really appreciate your effort and the value it brings. However, there are a couple of major issues that prevent me from being able to use the app effectively.
Firstly, the app doesn't seem to respect folder structures. I have a large number of photos and videos organized in various folders on my iOS 17 device. However, when I copy these folders to my Windows 11 computer, all the files get accumulated into a single folder. This not only makes it difficult to navigate and find specific files, but it also loses all the categorization that I had meticulously set up. With nearly 2000 photos, this becomes quite a frustrating experience.
Secondly, I've noticed that when my iPhone goes to sleep, the file transfer process stops. While this may not be a big issue on its own, the real problem arises when I unlock my iPhone and reconnect it to my Windows 11 computer. The app doesn't support resuming the file transfer from where it left off, which is quite disappointing. This means that I have to manually check which files were not copied, which can be quite time-consuming and inconvenient.
I hope you can understand my concern and consider addressing these issues in future updates. Once again, I want to express my gratitude for your hard work, and I look forward to seeing improvements in the app. Thank you!
The text was updated successfully, but these errors were encountered: